项目使用maven 构建,并且使用集成测试(integration-test)。
在命令行中运行mvn clean deploy tomcat:undeploy时,报错:
- -------------------------------------------------------
- T E S T S
- -------------------------------------------------------
- Running com.tdr.test.IntegrationTest
- This is integration-test
- $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
- log4j:WARN Error during default initialization
- java.lang.NoClassDefFoundError: org/w3c/dom/ElementTraversal
- at java.lang.ClassLoader.defineClass1(Native Method)
- at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
- at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
- at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
- at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
- at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
- at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
- at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
- at org.apache.xerces.parsers.AbstractDOMParser.startDocument(Unknown Source)
- at org.apache.xerces.impl.dtd.XMLDTDValidator.startDocument(Unknown Source)
- at org.apache.xerces.impl.XMLDocumentScannerImpl.startEntity(Unknown Source)
- at org.apache.xerces.impl.XMLVersionDetector.startDocumentParsing(Unknown Source)
- at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
- at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
- at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
- at org.apache.xerces.parsers.DOMParser.parse(Unknown Source)
- at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source)
- at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:180)
- at org.apache.log4j.xml.DOMConfigurator$2.parse(DOMConfigurator.java:690)
- at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:789)
- at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:696)
- at org.apache.log4j.helpers.OptionConverter.selectAndConfigure(OptionConverter.java:471)
- at org.apache.log4j.LogManager.<clinit>(LogManager.java:125)
- at org.apache.log4j.Logger.getLogger(Logger.java:105)
- at org.apache.commons.logging.impl.Log4JLogger.getLogger(Log4JLogger.java:289)
- at org.apache.commons.logging.impl.Log4JLogger.<init>(Log4JLogger.java:109)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
- at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
- at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
- at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
- at org.apache.commons.logging.impl.LogFactoryImpl.createLogFromClass(LogFactoryImpl.java:1116)
- at org.apache.commons.logging.impl.LogFactoryImpl.discoverLogImplementation(LogFactoryImpl.java:914)
- at org.apache.commons.logging.impl.LogFactoryImpl.newInstance(LogFactoryImpl.java:604)
- at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:336)
- at org.apache.commons.logging.impl.LogFactoryImpl.getInstance(LogFactoryImpl.java:310)
- at org.apache.commons.logging.LogFactory.getLog(LogFactory.java:685)
- at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:136)
- at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:115)
- at org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager.<init>(ThreadSafeClientConnManager.java:94)
- at org.openqa.selenium.remote.internal.HttpClientFactory.getClientConnectionManager(HttpClientFactory.java:61)
- at org.openqa.selenium.remote.internal.HttpClientFactory.<init>(HttpClientFactory.java:48)
- at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:100)
- at org.openqa.selenium.remote.HttpCommandExecutor.<init>(HttpCommandExecutor.java:81)
- at org.openqa.selenium.remote.service.DriverCommandExecutor.<init>(DriverCommandExecutor.java:46)
- at org.openqa.selenium.ie.InternetExplorerDriver.run(InternetExplorerDriver.java:182)
- at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:174)
- at org.openqa.selenium.ie.InternetExplorerDriver.<init>(InternetExplorerDriver.java:147)
- at com.tdr.test.IntegrationTest.test01(IntegrationTest.java:25)
- at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
- at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
- at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
- at java.lang.reflect.Method.invoke(Method.java:597)
- at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
- at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
- at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
- at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
- at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
- at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
- at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
- at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
- at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
- at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
- at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
- at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
- at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:264)
- at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:153)
- at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:124)
- at org.apache.maven.surefire.booter.ForkedBooter.invokeProviderInSameClassLoader(ForkedBooter.java:200)
- at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:153)
- at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:103)
- Caused by: java.lang.ClassNotFoundException: org.w3c.dom.ElementTraversal
- at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
- at java.security.AccessController.doPrivileged(Native Method)
- at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
- at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
- at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
- ... 75 more
- Started InternetExplorerDriver server (32-bit)
解决方法:
在项目的pom中增加:
- <dependency>
- <groupId>xml-apisgroupId>
- <artifactId>xml-apisartifactId>
- <version>1.4.01version>
- dependency>
详情请参阅
http://stackoverflow.com/questions/10234201/appengine-error-java-lang-noclassdeffounderror-org-w3c-dom-elementtraversal