diff --git a/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java b/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java
index f4daa077199cab962e0adb735eb61a043c462847..543a45cbad80578a4d245c7b5f9a7c75bb1d9cf0 100644
--- a/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java
+++ b/jams-ca/src/main/java/net/jami/jams/ca/JamsCA.java
@@ -79,12 +79,13 @@ public class JamsCA implements CertificateAuthority {
         crlLifetime = config.getCrlLifetime();
         userLifetime = config.getUserLifetime();
         deviceLifetime = config.getDeviceLifetime();
-        crlWorker = new CRLWorker(CA.getPrivateKey(), CA.getCertificate());
-        try {
-            ocspWorker = new OCSPWorker(OCSP.getPrivateKey(), OCSP.getCertificate(), crlWorker);
-        }
-        catch (Exception e){
-            log.error("Could not start OCSP request processor with error {}",e.getMessage());
+        if(ca != null && ocsp != null) {
+            crlWorker = new CRLWorker(CA.getPrivateKey(), CA.getCertificate());
+            try {
+                ocspWorker = new OCSPWorker(OCSP.getPrivateKey(), OCSP.getCertificate(), crlWorker);
+            } catch (Exception e) {
+                log.error("Could not start OCSP request processor with error {}", e.getMessage());
+            }
         }
     }
 
diff --git a/jams-ca/src/main/java/net/jami/jams/ca/workers/crl/CRLWorker.java b/jams-ca/src/main/java/net/jami/jams/ca/workers/crl/CRLWorker.java
index 07f55b022eb6f035ea57c4db95d1e89ab61bbbbb..5dea70100df5627b1f35cf79bcf516caa714e55a 100644
--- a/jams-ca/src/main/java/net/jami/jams/ca/workers/crl/CRLWorker.java
+++ b/jams-ca/src/main/java/net/jami/jams/ca/workers/crl/CRLWorker.java
@@ -51,7 +51,6 @@ public class CRLWorker extends X509Worker<RevocationRequest> {
 
     public CRLWorker(PrivateKey privateKey, X509Certificate certificate) {
         super(privateKey, certificate);
-        if(privateKey == null || certificate == null) return;
         this.setDaemon(true);
         this.start();
         //TODO: The CRL needs to be loaded from memory
diff --git a/jams-launcher/src/main/java/launcher/AppStarter.java b/jams-launcher/src/main/java/launcher/AppStarter.java
index 51c89bfcd07827ab3bdd1ed6af155240f2f5f250..ec9f3da234a716fe219353972ff319bdd02f0742 100644
--- a/jams-launcher/src/main/java/launcher/AppStarter.java
+++ b/jams-launcher/src/main/java/launcher/AppStarter.java
@@ -86,7 +86,7 @@ public class AppStarter extends Thread {
                     doUpdate.wait();
                 }
                 if(doUpdate.get()){
-                    Server.tomcatLauncher.stopTomcat();
+                    server.tomcatLauncher.stopTomcat();
                     server = null;
                     //This will trigger a force reload of the lib.
                     LibraryLoader.loadlibs(System.getProperty("user.dir"), AppStarter.class);
diff --git a/jams-server/pom.xml b/jams-server/pom.xml
index b0c670bf2560a16906c7ca78e6f2e0fb4f79a63b..279ea341417a2c2a29a674371fd49d8f9db0741e 100644
--- a/jams-server/pom.xml
+++ b/jams-server/pom.xml
@@ -15,7 +15,6 @@
             <groupId>net.jami</groupId>
             <artifactId>cryptoengine</artifactId>
             <version>${revision}</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>org.apache.tomcat.embed</groupId>
@@ -36,25 +35,21 @@
             <groupId>net.jami</groupId>
             <artifactId>datastore</artifactId>
             <version>${revision}</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>net.jami</groupId>
             <artifactId>jams-common</artifactId>
             <version>${revision}</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>net.jami</groupId>
             <artifactId>jami-nameserver</artifactId>
             <version>${revision}</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>net.jami</groupId>
             <artifactId>jami-dht</artifactId>
             <version>${revision}</version>
-            <scope>compile</scope>
         </dependency>
         <dependency>
             <groupId>com.nimbusds</groupId>
diff --git a/jams-server/src/main/java/net/jami/jams/server/Server.java b/jams-server/src/main/java/net/jami/jams/server/Server.java
index 37665303e47f7ece7bbde5ec4e4e045a7c06ad65..8d580f801b6b8d748983fb747be64f5c432c376f 100644
--- a/jams-server/src/main/java/net/jami/jams/server/Server.java
+++ b/jams-server/src/main/java/net/jami/jams/server/Server.java
@@ -23,6 +23,11 @@
 package net.jami.jams.server;
 
 import com.jsoniter.JsonIterator;
+import com.jsoniter.JsonIteratorPool;
+import com.jsoniter.output.EncodingMode;
+import com.jsoniter.output.JsonStream;
+import com.jsoniter.spi.DecodingMode;
+import com.jsoniter.spi.JsoniterSpi;
 import lombok.extern.slf4j.Slf4j;
 import net.jami.datastore.main.DataStore;
 import net.jami.jams.common.authentication.AuthenticationSourceType;
@@ -64,12 +69,11 @@ public class Server {
     public static AppUpdater appUpdater;
 
     public Server(AppUpdater appUpdater, String port, String serverCertificate, String serverPrivateKey) {
+        Runtime.getRuntime().gc();
         Server.appUpdater = appUpdater;
         JsoniterRegistry.initCodecs();
         String[] args = {port, serverCertificate, serverPrivateKey};
-
-        if ((args.length > 0)) main(args);
-        else main(new String[]{});
+        main(args);
     }
 
 
diff --git a/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java b/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
index 04b4c675c3e3e20869a04930cc20b38aad6ca95b..6b71db3c1d02d0c967672a00b0c53c05a0816483 100644
--- a/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
+++ b/jams-server/src/main/java/net/jami/jams/server/core/TomcatLauncher.java
@@ -51,7 +51,7 @@ import static net.jami.jams.server.Server.certificateAuthority;
 @Slf4j
 public class TomcatLauncher {
 
-    private Tomcat tomcat = new Tomcat();
+    private final Tomcat tomcat = new Tomcat();
 
     public TomcatLauncher(int port) {
         tomcat.getService().addConnector(TomcatConnectorFactory.getNoSSLConnector(port));
@@ -109,7 +109,7 @@ public class TomcatLauncher {
             tomcat.start();
             //Try to pop-up Web-UI
             if (Desktop.isDesktopSupported() && Desktop.getDesktop().isSupported(Desktop.Action.BROWSE)) {
-                Desktop.getDesktop().browse(new URI("https://localhost:8080"));
+                Desktop.getDesktop().browse(new URI(tomcat.getConnector().getScheme() + "://localhost:8080"));
             } else {
                 log.info("There is no graphical interface on this system - please connect remotely!");
             }
@@ -124,7 +124,6 @@ public class TomcatLauncher {
                 certificateAuthority.shutdownThreads();
                 tomcat.stop();
                 tomcat.destroy();
-                tomcat = null;
             }
         } catch (Exception e) {
             log.info("Failed to stop tomcat server with error {}", e.getMessage());