0

我在使用 Maven 配置文件设置来运行 HtmlUnit 测试用例时遇到了一些问题。该配置文件使用 Maven Cargo 插件来部署应用程序,然后在部署的应用程序上使用 HtmlUnit 运行接口测试。

在我的本地机器上,我每次都能干净利落地运行这个 Maven 配置文件,但是在我运行 Hudson(1.386 版)的持续集成服务器上,无论它是否能够部署,这个配置文件都会被命中或错过。我的 Tomcat 日志显示此错误:

严重:配置类 org.apache.myfaces.webapp.StartupServletContextListener java.lang.NoClassDefFoundError 的应用程序侦听器时出错:org.apache.myfaces.webapp.AbstractMyFacesListener.(AbstractMyFacesListener.java:36) 的 org/apache/commons/logging/LogFactory在 sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 在 sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) 在 sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) 在 java.lang.reflect.Constructor org.apache.catalina.core.StandardContext 的 java.lang.Class.newInstance(Class.java:308) 的 java.lang.Class.newInstance0(Class.java:355) 的 .newInstance(Constructor.java:513)。 listenerStart(StandardContext.java:4079) 在 org.apache。catalina.core.StandardContext.start(StandardContext.java:4630) 在 org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:791) 在 org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java: 771) 在 org.apache.catalina.core.StandardHost.addChild(StandardHost.java:546) 在 org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1041) 在 org.apache.catalina.startup.HostConfig .deployDirectories(HostConfig.java:964) 在 org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:502) 在 org.apache.catalina.startup.HostConfig.check(HostConfig.java:1345) 在 org. org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:119) 中的 org.apache.catalina.core 中的 apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:303)。ContainerBase.backgroundProcess(ContainerBase.java:1337) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java: 1610) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) 在 java.lang.Thread.run(Thread.java:662) 引起:java.lang.ClassNotFoundException: org.apache .commons.logging.LogFactory at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) ... 还有 23 个ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase. java:1590) 在 java.lang.Thread.run(Thread.java:662) 引起:java.lang.ClassNotFoundException: org.apache.catalina.loader.WebappClassLoader.loadClass 的 org.apache.commons.logging.LogFactory WebappClassLoader.java:1645) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) ... 23 更多ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610) 在 org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase. java:1590) 在 java.lang.Thread.run(Thread.java:662) 引起:java.lang.ClassNotFoundException: org.apache.catalina.loader.WebappClassLoader.loadClass 的 org.apache.commons.logging.LogFactory WebappClassLoader.java:1645) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) ... 23 更多ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) at java.lang.Thread.run(Thread.java:662) 原因:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at org.apache。 catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) ... 23 更多ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590) at java.lang.Thread.run(Thread.java:662) 原因:java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at org.apache。 catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645) 在 org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1491) ... 23 更多

这个问题令人困惑,因为它可能发生,或者如果不对代码进行任何更改,并且完全相同的代码在我的本地机器上完美运行这一事实,它就不可能发生。问题/错误纯粹是 Cargo 插件中部署的一部分,但没有明确的原因发生。任何想法、建议或解决方案都会对我有很大帮助。

更多细节:

本地机器(运行):Windows 7 64 位、Maven 2.2.1、Tomcat 6.0.32

CIS 服务器(失败):Windows 2008 Server 64 位、Maven 2.2.1、Tomcat 6.0.32、Hudson 1.386。

Maven 命令和目标:“mvn clover2:instrument clover2:clover site -P integration”(集成是 Maven 配置文件)

4

1 回答 1

0

您看过http://commons.apache.org/logging/troubleshooting.html的最后一部分了吗?

于 2011-04-20T16:54:24.190 回答