2013-12-22 27 views
9

我試圖讓工作集成測試與此配置Tomcat7嵌入式插件:

  <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat7-maven-plugin</artifactId> 
       <version>2.2</version> 
       <configuration> 
        <port>29360</port> 
        <systemProperties> 
         <logback.configurationFile>${project.build.testOutputDirectory}/logback-test.xml</logback.configurationFile> 
         <psw.config>${project.build.testOutputDirectory}</psw.config> 
         <spring.profiles.active>test-e2e</spring.profiles.active> 
        </systemProperties> 
       </configuration> 
       <dependencies> 
        <dependency> 
         <groupId>org.slf4j</groupId> 
         <artifactId>slf4j-api</artifactId> 
         <version>${slf4j.version}</version> 
        </dependency> 
        <dependency> 
         <groupId>ch.qos.logback</groupId> 
         <artifactId>logback-classic</artifactId> 
         <version>${logback.version}</version> 
        </dependency> 
       </dependencies> 
       <executions> 
        <execution> 
         <id>run-tomcat</id> 
         <phase>pre-integration-test</phase> 
         <goals> 
          <goal>run-war-only</goal> 
         </goals> 
         <configuration> 
          <fork>true</fork> 
         </configuration> 
        </execution> 
        <execution> 
         <id>stop-tomcat</id> 
         <phase>post-integration-test</phase> 
         <goals> 
          <goal>shutdown</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

然而,當關閉發生時,我一直有這個錯誤: 引起:拋出java.lang.ClassNotFoundException:org.apache.catalina.core.ContainerBase $ StopChild

[INFO] BUILD SUCCESS 
[INFO] ------------------------------------------------------------------------ 
[INFO] Total time: 2:49.618s 
[INFO] Finished at: Sun Dec 22 07:58:06 CET 2013 
[INFO] Final Memory: 163M/259M 
[INFO] ------------------------------------------------------------------------ 

ERROR: IllegalAccessException for stop method in class org.apache.tomcat.maven.plugin.tomcat7.run.ExtendedTomcat 
java.lang.reflect.InvocationTargetException 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:601) 
    at org.apache.tomcat.maven.common.run.EmbeddedRegistry.shutdownAll(EmbeddedRegistry.java:110) 
    at org.apache.tomcat.maven.common.run.EmbeddedRegistry$1.run(EmbeddedRegistry.java:69) 
Caused by: org.apache.catalina.LifecycleException: Failed to stop component [StandardServer[-1]] 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) 
    at org.apache.catalina.startup.Tomcat.stop(Tomcat.java:351) 
    ... 6 more 
Caused by: org.apache.catalina.LifecycleException: Failed to stop component [StandardService[Tomcat]] 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) 
    at org.apache.catalina.core.StandardServer.stopInternal(StandardServer.java:753) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
    ... 7 more 
Caused by: org.apache.catalina.LifecycleException: Failed to stop component [StandardEngine[Tomcat]] 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:236) 
    at org.apache.catalina.core.StandardService.stopInternal(StandardService.java:502) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
    ... 9 more 
Caused by: java.lang.NoClassDefFoundError: org/apache/catalina/core/ContainerBase$StopChild 
    at org.apache.catalina.core.ContainerBase.stopInternal(ContainerBase.java:1173) 
    at org.apache.catalina.util.LifecycleBase.stop(LifecycleBase.java:232) 
    ... 11 more 
Caused by: java.lang.ClassNotFoundException: org.apache.catalina.core.ContainerBase$StopChild 
    at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass(SelfFirstStrategy.java:50) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass(ClassRealm.java:259) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:235) 
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass(ClassRealm.java:227) 
    ... 13 more 

Process finished with exit code 0 

糾正這種任何提示?

+0

我遇到同樣的問題。使用'mvn verify'運行集成測試後,服務器無法停止,但奇怪的是,這隻發生在集成測試失敗時。如果它們正確運行,服務器會嘗試正常關閉,並且我收到此警告'與線程池[http-bio-8087]關聯的執行程序尚未完全關閉。某些應用程序線程可能仍在運行。'。 – virgium03

回答

13

如果您運行mvn integration-test,它將不會運行後整合測試階段,這會導致此錯誤。改用mvn驗證。

+0

我有一個類似的問題,「mvn verify」爲我工作:) – user2325154

相關問題