2017-02-15 14 views
0

после развертывания моего приложения через WildFly я вижу следующие сообщения:WildFly GWT Сообщение об ошибке мартовский кот контейнер

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

в моей Maven проекта я также импортировать следующие depdencies

<!-- 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> 

Как я прочитал над Проект WildFly контейнер Tomcat был удален, поэтому я добавил следующие зависимости:

<dependency> 
     <groupId>org.apache.tomcat</groupId> 
     <artifactId>tomcat-util-scan</artifactId> 
     <version>8.5.2</version> 
    </dependency> 

любой идее, как обходить это сообщение об ошибке?

+0

Используйте плагин Thomas Broyers maven gwt, который позволяет вам отделить серверный модуль, путь к классу сервера с классом пути клиентского модуля. – Branflake2267

+0

У меня такая же проблема, вы нашли решение? – Phoste

ответ

0

Конечно не работает, как вы можете увидеть, если вы добавите для тестирования следующей depedency (GWT-DEV):

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

является в том числе сервера молов и это один из movtiv для receving сообщение из мой первый вопрос.

0

Обязательно не загромождайте серверную часть с помощью зависимостей времени компиляции.

gwt-servlet необходим только для выполнения, gwt-dev и gwt-user должен быть установлен в provided - что приводит к иметь их для компиляции в JavaScript, но оставляя их в конечном файле WAR на сервере приложений.

<!-- 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> 

Но после того, как все это выглядит для меня, как вы не должны пытаться поставить какую-либо библиотеку Tomcat на сервере WildFly, как он уже содержит все, чтобы запустить серверную часть приложения. Поэтому просто придерживаться простого сервлета API следующим образом:

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

Это provided снова, как WildFly имеет это встроенное.

Можете ли вы попытаться исключить зависимости Tomcat и посмотреть, работает ли это для вас?

+0

Здравствуйте, у меня такая же проблема, я не имею никакой зависимости от google.gwt в моем проекте. Я добавил зависимость javax.servlet-api с предоставленной областью. Я исключил весенний бот-стартер-кота из весеннего сапога-стартера, а также добавил предоставленную ему область (я видел это где-то). Даже при всем этом у меня все еще есть проблема. – Phoste