1
我通過ant運行時遇到了NoClassDefFoundError,但在Tomcat中部署應用時它正在運行。NoClassDefFoundError當通過Ant運行測試但在Tomcat中部署時工作
我調用它使用
ant test
異常
java.lang.NoClassDefFoundError: org/apache/commons/dbcp2/BasicDataSource
at com.x.ws.repo.DatabaseConnection.<init>(Unknown Source)
at com.x.ws.repo.DatabaseConnection.getSynchronizedInstance(Unknown Source)
at com.x.ws.repo.DatabaseConnection.getInstance(Unknown Source)
at com.x.ws.repo.Foo.<init>(Unknown Source)
at com.x.ws.repo.FooTest.setUp(Unknown Source)
Ant腳本
<path id="classpath.test">
<pathelement location="WebContent/WEB-INF/lib/junit-4.11.jar"/>
<pathelement location="WebContent/WEB-INF/lib/hamcrest-all-1.3.jar"/>
<pathelement location="WebContent/WEB-INF/lib/java-json.jar"/>
<pathelement location="${main.build.dir}"/>
</path>
<target name="test-compile" depends="compile">
<javac srcdir="${test.src.dir}" destdir="${test.build.dir}">
<classpath refid="classpath.test"/>
<classpath refid="classpath"/>
</javac>
</target>
<target name="test" depends="test-compile">
<junit printsummary="yes" haltonfailure="no">
<classpath refid="classpath.test" />
<classpath location="${test.build.dir}" />
<formatter type="xml" />
<formatter type="plain" />
<batchtest fork="yes" todir="${reports.src.dir}">
<fileset dir="${test.src.dir}">
<include name="**/*Test*.java" />
</fileset>
</batchtest>
</junit>
</target>