2016-09-20 12 views
-1

こんにちは、私は現在、Springアプリケーションでテストを実行しているときにエラーが発生しています。Spring and Jetty NoClassDefFoundエラー

エラーは次のとおりです。

java.lang.ClassNotFoundException: org/eclipse/jetty/util/FutureCallback 

これは春とMavenを使用して、私の最初の時間ですので、私はかなり混乱しています。
私はそれが私のpomファイルの問題だと思いますが、わかりません。ここに私のpom.xmlは次のとおりです。

<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/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 

<groupId>org</groupId> 
<artifactId>CountdownCustomer</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<packaging>jar</packaging> 

<name>CountdownCustomer</name> 
<url>http://maven.apache.org</url> 

<parent> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-parent</artifactId> 
    <version>1.4.0.RELEASE</version> 
</parent> 

<properties> 
    <java.version>1.8</java.version> 
    <servlet.container.port>10000</servlet.container.port> 
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> 
    <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> 
</properties> 
<dependencies> 
<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jackson-provider</artifactId> 
    <version>3.0.12.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-jaxrs</artifactId> 
    <version>3.0.12.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-client</artifactId> 
    <version>3.0.12.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>jaxrs-api</artifactId> 
    <version>3.0.12.Final</version> 
</dependency> 
<dependency> 
    <groupId>org.jboss.resteasy</groupId> 
    <artifactId>resteasy-servlet-initializer</artifactId> 
    <version>3.0.12.Final</version> 
</dependency> 
<!-- Hibernate --> 
<dependency> 
    <groupId>org.hibernate</groupId> 
    <artifactId>hibernate-entitymanager</artifactId> 
</dependency> 
<!-- H2 embedded database. --> 
<dependency> 
    <groupId>com.h2database</groupId> 
    <artifactId>h2</artifactId> 
</dependency> 
<!-- Spring --> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-rest</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-data-jpa</artifactId> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-test</artifactId> 
    <scope>test</scope> 
    <exclusions> 
     <exclusion> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-tomcat</artifactId> 
     </exclusion> 
    </exclusions> 
</dependency> 
<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jetty</artifactId> 
</dependency> 
<dependency> 
    <groupId>com.jayway.jsonpath</groupId> 
    <artifactId>json-path</artifactId> 
    <scope>test</scope> 
</dependency> 
<!-- Junit --> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <scope>test</scope> 
</dependency> 
</dependencies> 
<build> 
    <plugins> 
     <plugin> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-maven-plugin</artifactId> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <configuration> 
       <source>1.8</source> 
       <target>1.8</target> 
      </configuration> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>true</skip> 
      </configuration> 
      <executions> 
       <execution> 
        <id>surefire-it</id> 
        <phase>integration-test</phase> 
        <goals> 
         <goal>test</goal> 
        </goals> 
        <configuration> 
         <skip>false</skip> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

     <plugin> 
      <groupId>org.eclipse.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>9.1.4.v20140401</version> 
      <configuration> 
       <httpConnector> 
        <port>${servlet.container.port}</port> 
       </httpConnector> 
       <webApp> 
        <contextPath>/</contextPath> 
       </webApp> 
       <scanIntervalSeconds>10</scanIntervalSeconds> 
       <stopKey>foo</stopKey> 
       <stopPort>9999</stopPort> 
       <stopWait>1</stopWait> 
      </configuration> 
      <executions> 
       <execution> 
        <id>start-jetty</id> 
        <phase>pre-integration-test</phase> 
        <goals> 
         <goal>run</goal> 
        </goals> 
        <configuration> 
         <scanIntervalSeconds>0</scanIntervalSeconds> 
         <daemon>true</daemon> 
        </configuration> 
       </execution> 
       <execution> 
        <id>stop-jetty</id> 
        <phase>post-integration-test</phase> 
        <goals> 
         <goal>stop</goal> 
        </goals> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 
</build> 

<repositories> 
    <repository> 
     <id>spring-releases</id> 
     <url>https://repo.spring.io/libs-release</url> 
    </repository> 
</repositories> 
<pluginRepositories> 
    <pluginRepository> 
     <id>spring-releases</id> 
     <url>https://repo.spring.io/libs-release</url> 
    </pluginRepository> 
</pluginRepositories> 

更新:

問題は、あなたがあなたに次の依存関係を追加する必要があり、より最近1

答えて

0

に桟橋のバージョンを変更することで修正されましたプロジェクト:

<!-- https://mvnrepository.com/artifact/org.eclipse.jetty/jetty-util --> 
<dependency> 
    <groupId>org.eclipse.jetty</groupId> 
    <artifactId>jetty-util</artifactId> 
    <version>9.3.10.v20160621</version> 
</dependency> 
0

まあ、春のブートにはTomcatが含まれていますその埋め込まれたサーバーには、その依存関係に

<exclusions> 
    <exclusion> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-tomcat</artifactId> 
    </exclusion> 
</exclusions> 

を削除し、桟橋

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jetty</artifactId> 
</dependency> 

とそれを交換する必要があります。また、あなたはそれらのブートの依存関係のすべてを必要としません。 spring-boot-starter-data-restには既にspring-boot-starter-data-jpaspring-boot-starter-webが含まれていますが、削除することもできます。

+0

私はアプリケーションをjettyで実行していますが、テストを実行すると同じエラーで失敗します – t77

+0

また、 'spring-boot-starter-test'依存で同じ変更を加えなければなりません。 – rorschach

+0

除外を追加しましたが、まだテストに失敗します – t77

0

jarファイルに使用するクラスがあることを確認してください。 リポジトリ(C:\ Users \ .m2 \ repository)を開き、jarの場所に移動し、jarを開いて表示することができます。 そのjarにクラスがない場合は、そのクラスを持つ他の依存関係を探して、pom.xmlに追加します。

関連する問題