2017-02-15 5 views
0

nach meiner Anwendung über Wildfly Bereitstellung ich die folgenden Meldungen:Wildfly GWT Fehlermeldung tomcat Behälter

2017-02-15 10:06:51,440 ERROR [org.jboss.msc.service.fail] (ServerService Thread Pool -- 178) MSC000001: Failed to start service jboss.undertow.deployment.default-server.default-host./cati: org.jboss.msc.service.StartException in service jboss.undertow.deployment.default-server.default-host./cati: java.lang.NoSuchMethodError: org.apache.tomcat.util.descriptor.DigesterFactory.newDigester(ZZLorg/apache/tomcat/util/digester/RuleSet;Z)Lorg/apache/tomcat/util/digester/Digester; at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:85) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) at java.lang.Thread.run(Thread.java:745) at org.jboss.threads.JBossThread.run(JBossThread.java:320) Caused by: java.lang.NoSuchMethodError: org.apache.tomcat.util.descriptor.DigesterFactory.newDigester(ZZLorg/apache/tomcat/util/digester/RuleSet;Z)Lorg/apache/tomcat/util/digester/Digester; at org.apache.tomcat.util.descriptor.tld.TldParser.(TldParser.java:49) at org.apache.tomcat.util.descriptor.tld.TldParser.(TldParser.java:44) at org.apache.jasper.servlet.TldScanner.(TldScanner.java:79) at org.apache.jasper.servlet.JasperInitializer.newTldScanner(JasperInitializer.java:120) at org.eclipse.jetty.apache.jsp.JettyJasperInitializer.newTldScanner(JettyJasperInitializer.java:115) at org.apache.jasper.servlet.JasperInitializer.onStartup(JasperInitializer.java:101) at io.undertow.servlet.core.DeploymentManagerImpl.deploy(DeploymentManagerImpl.java:184) at org.wildfly.extension.undertow.deployment.UndertowDeploymentService.startContext(UndertowDeploymentService.java:100) at org.wildfly.extension.undertow.deployment.UndertowDeploymentService$1.run(UndertowDeploymentService.java:82) ... 6 more

in meinem Maven Projekt, das ich auch folgende depdencies importieren

<!-- GWT --> 
    <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-user --> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-user</artifactId> 
     <version>2.8.0</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-servlet --> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-servlet</artifactId> 
     <version>2.8.0</version> 
    </dependency> 
    <!-- https://mvnrepository.com/artifact/com.google.gwt/gwt-dev --> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-dev</artifactId> 
     <version>2.8.0</version> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.tomcat</groupId> 
     <artifactId>tomcat-util-scan</artifactId> 
     <version>8.5.2</version> 
    </dependency> 

Wie ich das überlesen WildFly Projekt der Tomcat-Container wurde entfernt, dass, warum habe ich die folgenden Abhängigkeiten hinzugefügt:

any ideea wie diese Fehlermeldung zu umgehen?

+0

Verwenden Sie Thomas Broyers Maven gwt-Plugin, mit dem Sie das Servermodul, Server Classpath mit dem Client-Modul Classpath trennen können. – Branflake2267

+0

Ich habe das gleiche Problem hier, haben Sie eine Lösung gefunden? – Phoste

Antwort

0

Natürlich nicht funktionieren, wie Sie sehen können, wenn Sie zum Testen der folgenden depedency hinzufügen (GWT-dev):

<dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-dev</artifactId> 
     <version>2.8.0</version> 
</dependency> 

ist mit dem Steg-Server und das ist einer der movtiv für den receving Nachricht von meiner ersten Frage.

0

Achten Sie darauf, die Serverseite nicht mit Kompilierungszeitabhängigkeiten zu überladen.

gwt-servlet benötigt wird, nur für Runtime, gwt-dev und gwt-user sollte provided eingestellt werden - was sie in mit führt zu JavaScript für die Erstellung, sondern sie aus in der letzten WAR-Datei auf dem Anwendungsserver zu verlassen.

<!-- GWT --> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-servlet</artifactId> 
     <scope>runtime</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-user</artifactId> 
     <scope>provided</scope> 
    </dependency> 
    <dependency> 
     <groupId>com.google.gwt</groupId> 
     <artifactId>gwt-dev</artifactId> 
     <scope>provided</scope> 
    </dependency> 

Aber immerhin sieht es für mich wie Sie keine Tomcat Bibliotheken im Wildfly Server zu setzen versuchen sollten, da es alles enthält bereits den Server-Teil Ihrer Anwendung auszuführen. Deshalb bleiben nur auf der Ebene Servlet-API wie folgt:

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <scope>provided</scope> 
    </dependency> 

Es ist provided wieder, wie Wildfly hat es eingebaut.

Können Sie versuchen, die Tomcat-Abhängigkeiten auszuschließen und zu sehen, ob es für Sie funktioniert?

+0

Hallo, ich habe das gleiche Problem hier, aber ich habe keine google.gwt-Abhängigkeit in meinem Projekt. Ich habe die javax.servlet-api-Abhängigkeit mit dem angegebenen Bereich hinzugefügt. Ich habe Spring-Boot-Starter-Tomcat von Spring-Boot-Starter-Web ausgeschlossen und auch ein mitgeliefertes Scope hinzugefügt (ich sah das irgendwo). Trotz allem habe ich immer noch das Problem. – Phoste