NoSuchMethodError:org.eclipse.jetty.websocket.server.WebSocketServerFactory。<init>(Ljavax / servlet / ServletContext;)V

adn*_*ems 4 gwt jetty maven spring-boot

通过eclipse插件启动应用程序时出现以下异常:“运行方式”>“带有码头的GWT开发模式”

环境: -GWT
SDK 2.8-
春季启动1.5.2.RELEASE-
码头9.4.2
-GWT Eclipse插件3.0.0

上下文:将GWT 2.6应用程序迁移到GWT 2.8,并使用
由GWT webAppCreator生成的spring-boot 应用程序pom

这是堆栈跟踪

**Exception in thread "main" java.lang.NoSuchMethodError: 
org.eclipse.jetty.websocket.server.WebSocketServerFactory.<init>(Ljavax/servlet/ServletContext;)V**
at org.eclipse.jetty.websocket.server.NativeWebSocketConfiguration.<init>(NativeWebSocketConfiguration.java:53)
at org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer.getDefaultFrom(NativeWebSocketServletContainerInitializer.java:36)
at org.eclipse.jetty.websocket.server.NativeWebSocketServletContainerInitializer.onStartup(NativeWebSocketServletContainerInitializer.java:46)
at org.eclipse.jetty.plus.annotation.ContainerInitializer.callStartup(ContainerInitializer.java:140)
at org.eclipse.jetty.annotations.ServletContainerInitializersStarter.doStart(ServletContainerInitializersStarter.java:63)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:329)
at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1480)
at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1442)
at org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:799)
at org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:540)
at com.google.gwt.dev.shell.jetty.JettyLauncher$WebAppContextWithReload.doStart(JettyLauncher.java:550)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
at org.eclipse.jetty.server.Server.start(Server.java:452)
at org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
at org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
at org.eclipse.jetty.server.Server.doStart(Server.java:419)
at org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
at com.google.gwt.dev.shell.jetty.JettyLauncher.start(JettyLauncher.java:759)
at com.google.gwt.dev.DevMode.doStartUpServer(DevMode.java:634)
at com.google.gwt.dev.DevModeBase.startUp(DevModeBase.java:923)
at com.google.gwt.dev.DevModeBase.run(DevModeBase.java:706)
at com.google.gwt.dev.DevMode.main(DevMode.java:430)
Run Code Online (Sandbox Code Playgroud)

为什么我的应用程序无法启动?
这是我的pom和依赖树。谢谢您的帮助

pom.xml

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
 <!-- POM file generated with GWT webAppCreator -->
 <modelVersion>4.0.0</modelVersion>
 <groupId>com.mycompany.fonems.webapp</groupId>
 <artifactId>Fonemswebapp</artifactId>
 <packaging>war</packaging>
 <version>1.0-SNAPSHOT</version>
 <name>com.mycompany.fonems.webapp.Fonemswebapp</name>
  <parent> <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.5.2.RELEASE</version>
  </parent>
 <properties>
   <!-- Setting maven.compiler.source to something different to 1.8
       needs that you configure the sourceLevel in gwt-maven-plugin since
       GWT compiler 2.8 requires 1.8 (see gwt-maven-plugin block below) -->
   <maven.compiler.source>1.8</maven.compiler.source>
   <maven.compiler.target>1.8</maven.compiler.target>
   <!-- Don't let your Mac use a crazy non-standard encoding -->
   <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
   <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
    <smartgwt.version>3.1</smartgwt.version>
 </properties>
 <dependencyManagement>
   <dependencies>
    <!-- ensure all GWT deps use the same version (unless overridden) -->
    <dependency>
      <groupId>com.google.gwt</groupId>
      <artifactId>gwt</artifactId>
      <version>2.8.0</version>
      <type>pom</type>
      <scope>import</scope>
    </dependency>
   </dependencies>
 </dependencyManagement>
 <dependencies>
    <dependency>
        <groupId>com.mycompany.fonems</groupId>
        <artifactId>fonems-fwk-server-common</artifactId>
        <version>0.0.104-SNAPSHOT</version>
        <exclusions>
            <exclusion>
                <artifactId>xercesImpl</artifactId>
                <groupId>xerces</groupId>
            </exclusion>
        </exclusions>
    </dependency>
    <dependency>
        <groupId>com.mycompany.fonems</groupId>
        <artifactId>fonems-refonte-dao</artifactId>
        <version>0.0.104-SNAPSHOT</version>
        <exclusions>
            <exclusion>
                <artifactId>javax.el-api</artifactId>
                <groupId>javax.el</groupId>
            </exclusion>
            <exclusion>
                <artifactId>xercesImpl</artifactId>
                <groupId>xerces</groupId>
            </exclusion>
        </exclusions>
    </dependency>
   <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>
    <exclusions>
        <exclusion>
            <artifactId>xercesImpl</artifactId>
            <groupId>xerces</groupId>
        </exclusion>
    </exclusions>
   </dependency>
    <dependency>
        <groupId>com.smartgwt</groupId>
        <artifactId>smartgwt</artifactId>
        <version>${smartgwt.version}</version>
    </dependency>
        <dependency>
            <groupId>com.smartgwt</groupId>
            <artifactId>smartgwt-skins</artifactId>
            <version>${smartgwt.version}</version>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>mycompany.drh</groupId>
            <artifactId>newncauth</artifactId>
            <version>${mycompany.drh.version}</version>
        </dependency>
        <dependency>
            <groupId>mycompany.drh</groupId>
            <artifactId>mycompany.droits-habilitations.rmi</artifactId>
            <version>${mycompany.drh.rmi.version}</version>
        </dependency>
   <dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <scope>test</scope>
   </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <scope>compile</scope>
        </dependency>
 </dependencies>
 <build>
   <!-- Output classes directly into the webapp, so that IDEs and "mvn process-classes" update them in DevMode -->
   <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
   <plugins>
    <!-- GWT Maven Plugin-->
    <plugin>
      <groupId>net.ltgt.gwt.maven</groupId>
      <artifactId>gwt-maven-plugin</artifactId>
      <version>1.0-rc-6</version>
      <executions>
        <execution>
         <goals>
           <goal>import-sources</goal>
           <goal>compile</goal>
           <goal>import-test-sources</goal>
           <goal>test</goal>
         </goals>
        </execution>
      </executions>
      <configuration>
        <moduleName>com.mycompany.fonems.webapp.Fonemswebapp</moduleName>
        <moduleShortName>Fonemswebapp</moduleShortName>
        <failOnError>true</failOnError>
        <!-- GWT compiler 2.8 requires 1.8, hence define sourceLevel here if you use
            a different source language for java compilation -->
        <sourceLevel>1.8</sourceLevel>
        <!-- Compiler configuration -->
        <compilerArgs>
         <!-- Ask GWT to create the Story of Your Compile (SOYC) (gwt:compile) -->
         <arg>-compileReport</arg>
         <arg>-XcompilerMetrics</arg>
        </compilerArgs>
        <!-- DevMode configuration -->
        <warDir>${project.build.directory}/${project.build.finalName}</warDir>
        <classpathScope>compile+runtime</classpathScope>
        <!-- URL(s) that should be opened by DevMode (gwt:devmode). -->
        <startupUrls>
         <startupUrl>Fonemswebapp.html</startupUrl>
        </startupUrls>

<!--          <webappDirectory>${outputFolder}</webappDirectory> -->
      </configuration>

    </plugin>

    <!-- Skip normal test execution, we use gwt:test instead -->
    <plugin>
      <artifactId>maven-surefire-plugin</artifactId>
      <version>2.17</version>
      <configuration>
        <skip>true</skip>
      </configuration>
    </plugin>
   </plugins>
 </build>
</project>
Run Code Online (Sandbox Code Playgroud)

依赖树

------------------------------------------------------------------------
Building com.mycompany.fonems.webapp.Fonemswebapp 1.0-SNAPSHOT
------------------------------------------------------------------------

--- maven-dependency-plugin:2.10:tree (default-cli) @ Fonemswebapp ---
com.mycompany.fonems.webapp:Fonemswebapp:war:1.0-SNAPSHOT
+- com.mycompany.fonems:fonems-fwk-server-common:jar:0.0.104-SNAPSHOT:compile
|  +- commons-configuration:commons-configuration:jar:1.9:compile
|  |  \- commons-logging:commons-logging:jar:1.1.1:compile
|  +- commons-beanutils:commons-beanutils:jar:1.9.3:compile
|  +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
|  |  \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
|  +- joda-time:joda-time:jar:2.9.7:compile
|  +- org.apache.commons:commons-lang3:jar:3.1:compile
|  +- commons-io:commons-io:jar:2.4:compile
|  +- commons-lang:commons-lang:jar:2.6:compile
|  +- commons-collections:commons-collections:jar:3.2.2:compile
|  +- org.springframework:spring-tx:jar:4.3.7.RELEASE:compile
|  +- org.springframework:spring-context:jar:4.3.7.RELEASE:compile
|  |  +- org.springframework:spring-aop:jar:4.3.7.RELEASE:compile
|  |  \- org.springframework:spring-expression:jar:4.3.7.RELEASE:compile
|  +- javax.xml.bind:jaxb-api:jar:2.2.12:compile
|  +- javax.validation:validation-api:jar:1.1.0.Final:compile
|  +- com.google.guava:guava:jar:18.0:compile
|  +- commons-betwixt:commons-betwixt:jar:0.8:compile
|  |  +- commons-beanutils:commons-beanutils-core:jar:1.7.0:compile
|  |  \- commons-digester:commons-digester:jar:2.1:compile
|  +- net.sf.dozer:dozer:jar:5.4.0:compile
|  +- org.slf4j:jcl-over-slf4j:jar:1.7.24:compile
|  +- uk.org.lidalia:sysout-over-slf4j:jar:1.0.2:compile
|  +- org.slf4j:slf4j-api:jar:1.7.24:compile
|  \- ch.qos.logback:logback-classic:jar:1.1.11:compile
|    \- ch.qos.logback:logback-core:jar:1.1.11:compile
+- com.mycompany.fonems:fonems-refonte-dao:jar:0.0.104-SNAPSHOT:compile
|  +- com.zaxxer:HikariCP:jar:2.5.1:compile
|  +- org.lazyluke:log4jdbc-remix:jar:0.2.7:compile
|  +- com.mycompany.fonems:fonems-config:jar:0.0.104-SNAPSHOT:compile
|  +- com.mycompany.fonems:fonems-refonte-model:jar:0.0.104-SNAPSHOT:compile
|  |  +- org.jvnet.jaxb2_commons:jaxb2-basics-runtime:jar:0.6.4:compile
|  |  +- openaccess:comFidessaInf:jar:3.0.1:compile
|  |  +- org.springframework.boot:spring-boot-starter-validation:jar:1.5.2.RELEASE:compile
|  |  |  +- org.springframework.boot:spring-boot-starter:jar:1.5.2.RELEASE:compile
|  |  |  |  +- org.springframework.boot:spring-boot:jar:1.5.2.RELEASE:compile
|  |  |  |  +- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.2.RELEASE:compile
|  |  |  |  +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.2.RELEASE:compile
|  |  |  |  |  +- org.slf4j:jul-to-slf4j:jar:1.7.24:compile
|  |  |  |  |  \- org.slf4j:log4j-over-slf4j:jar:1.7.24:compile
|  |  |  |  \- org.yaml:snakeyaml:jar:1.17:runtime
|  |  |  +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.11:compile
|  |  |  \- org.hibernate:hibernate-validator:jar:5.3.4.Final:compile
|  |  |    \- com.fasterxml:classmate:jar:1.3.3:compile
|  |  \- org.springframework.boot:spring-boot-starter-data-jpa:jar:1.5.2.RELEASE:compile
|  |    +- org.springframework.boot:spring-boot-starter-aop:jar:1.5.2.RELEASE:compile
|  |    |  \- org.aspectj:aspectjweaver:jar:1.8.9:compile
|  |    +- org.springframework.boot:spring-boot-starter-jdbc:jar:1.5.2.RELEASE:compile
|  |    +- org.hibernate:hibernate-core:jar:5.0.12.Final:compile
|  |    |  +- antlr:antlr:jar:2.7.7:compile
|  |    |  \- org.jboss:jandex:jar:2.0.0.Final:compile
|  |    +- org.springframework.data:spring-data-jpa:jar:1.11.1.RELEASE:compile
|  |    |  +- org.springframework.data:spring-data-commons:jar:1.13.1.RELEASE:compile
|  |    |  \- org.springframework:spring-orm:jar:4.3.7.RELEASE:compile
|  |    \- org.springframework:spring-aspects:jar:4.3.7.RELEASE:compile
|  +- org.springframework:spring-core:jar:4.3.7.RELEASE:compile
|  +- org.springframework:spring-test:jar:4.3.7.RELEASE:compile
|  +- org.springframework:spring-jdbc:jar:4.3.7.RELEASE:compile
|  +- org.springframework:spring-beans:jar:4.3.7.RELEASE:compile
|  +- org.hsqldb:hsqldb:jar:2.3.3:compile
|  +- commons-dbcp:commons-dbcp:jar:1.4:compile
|  |  \- commons-pool:commons-pool:jar:1.6:compile
|  +- com.oracle:ojdbc7:jar:12.1.0.2:compile
|  \- de.jpdigital:hibernate5-ddl-maven-plugin:jar:1.0.0:compile
|    +- org.apache.maven:maven-artifact:jar:3.3.9:compile
|    +- org.apache.maven:maven-core:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-model:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-settings:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-settings-builder:jar:3.3.9:compile
|    |  |  \- org.apache.maven:maven-builder-support:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-repository-metadata:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-model-builder:jar:3.3.9:compile
|    |  +- org.apache.maven:maven-aether-provider:jar:3.3.9:compile
|    |  |  \- org.eclipse.aether:aether-spi:jar:1.0.2.v20150114:compile
|    |  +- org.eclipse.aether:aether-impl:jar:1.0.2.v20150114:compile
|    |  +- org.eclipse.aether:aether-api:jar:1.0.2.v20150114:compile
|    |  +- org.eclipse.aether:aether-util:jar:1.0.2.v20150114:compile
|    |  +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.2:compile
|    |  |  +- javax.enterprise:cdi-api:jar:1.0:compile
|    |  |  |  \- javax.annotation:jsr250-api:jar:1.0:compile
|    |  |  \- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.2:compile
|    |  +- com.google.inject:guice:jar:no_aop:4.0:compile
|    |  |  +- javax.inject:javax.inject:jar:1:compile
|    |  |  \- aopalliance:aopalliance:jar:1.0:compile
|    |  +- org.codehaus.plexus:plexus-interpolation:jar:1.21:compile
|    |  +- org.codehaus.plexus:plexus-classworlds:jar:2.5.2:compile
|    |  +- org.codehaus.plexus:plexus-component-annotations:jar:1.6:compile
|    |  \- org.sonatype.plexus:plexus-sec-dispatcher:jar:1.3:compile
|    |    \- org.sonatype.plexus:plexus-cipher:jar:1.4:compile
|    +- org.apache.maven:maven-plugin-api:jar:3.3.9:compile
|    +- org.apache.maven:maven-project:jar:3.0-alpha-2:compile
|    |  +- org.apache.maven:maven-compat:jar:3.0-alpha-2:compile
|    |  |  \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-beta-4:compile
|    |  +- org.codehaus.plexus:plexus-container-default:jar:1.0-beta-3.0.5:compile
|    |  |  +- org.apache.xbean:xbean-reflect:jar:3.4:compile
|    |  |  |  +- log4j:log4j:jar:1.2.12:compile
|    |  |  |  \- commons-logging:commons-logging-api:jar:1.1:compile
|    |  |  \- com.google.code.google-collections:google-collect:jar:snapshot-20080530:compile
|    |  +- org.codehaus.woodstox:wstx-asl:jar:3.2.6:compile
|    |  |  \- stax:stax-api:jar:1.0.1:compile
|    |  +- org.sonatype.spice:model-builder:jar:1.3:compile
|    |  \- org.apache.maven:maven-project-builder:jar:3.0-alpha-2:compile
|    +- org.codehaus.plexus:plexus-utils:jar:3.0.24:compile
|    +- org.hibernate:hibernate-entitymanager:jar:5.0.12.Final:compile
|    |  +- org.jboss.logging:jboss-logging:jar:3.3.0.Final:compile
|    |  +- dom4j:dom4j:jar:1.6.1:compile
|    |  +- org.hibernate.common:hibernate-commons-annotations:jar:5.0.1.Final:compile
|    |  +- org.hibernate.javax.persistence:hibernate-jpa-2.1-api:jar:1.0.0.Final:compile
|    |  +- org.javassist:javassist:jar:3.21.0-GA:compile
|    |  \- org.apache.geronimo.specs:geronimo-jta_1.1_spec:jar:1.1.1:compile
|    +- org.hibernate:hibernate-envers:jar:5.0.12.Final:compile
|    +- org.reflections:reflections:jar:0.9.10:compile
|    |  \- com.google.code.findbugs:annotations:jar:2.0.1:compile
|    \- javax.transaction:javax.transaction-api:jar:1.2:compile
+- com.google.gwt:gwt-servlet:jar:2.8.0:runtime
+- com.google.gwt:gwt-user:jar:2.8.0:provided
|  +- com.google.jsinterop:jsinterop-annotations:jar:1.0.1:provided
|  +- com.google.jsinterop:jsinterop-annotations:jar:sources:1.0.1:provided
|  +- javax.validation:validation-api:jar:sources:1.0.0.GA:provided
|  +- javax.servlet:javax.servlet-api:jar:3.1.0:provided
|  \- org.w3c.css:sac:jar:1.3:provided
+- com.google.gwt:gwt-dev:jar:2.8.0:provided
|  +- com.google.code.gson:gson:jar:2.8.0:provided
|  +- org.ow2.asm:asm:jar:5.0.3:provided
|  +- org.ow2.asm:asm-util:jar:5.0.3:provided
|  |  \- org.ow2.asm:asm-tree:jar:5.0.3:provided
|  +- org.ow2.asm:asm-commons:jar:5.0.3:provided
|  +- colt:colt:jar:1.2.0:provided
|  +- ant:ant:jar:1.6.5:provided
|  +- com.ibm.icu:icu4j:jar:50.1.1:provided
|  +- tapestry:tapestry:jar:4.0.2:provided
|  +- net.sourceforge.htmlunit:htmlunit:jar:2.21:provided
|  |  +- xalan:xalan:jar:2.7.2:provided
|  |  |  \- xalan:serializer:jar:2.7.2:provided
|  |  +- org.apache.httpcomponents:httpclient:jar:4.5.3:provided
|  |  |  \- org.apache.httpcomponents:httpcore:jar:4.4.6:provided
|  |  +- org.apache.httpcomponents:httpmime:jar:4.5.3:provided
|  |  +- commons-codec:commons-codec:jar:1.10:provided
|  |  +- net.sourceforge.htmlunit:ht

And*_*son 5

您在类路径中混合了Jetty版本:9.4.2.v20170220和9.2.14.v20151106。前者是Spring Boot 1.5.2默认使用的东西。我猜后者来自的进口com.google.gwt:gwt

您可以覆盖jetty.versionSpring Boot用来将其值设置为的属性9.2.14.v20151106,从而在任何地方都使用9.2.14。另外,您可以为当前使用9.2.14的模块声明自己的依赖性管理,以将其升级到9.4.2。