Hi,
I know this is a problematic topic, and I read the web pages for
dealing with classpath problems. I also browsed the list archives. The
problem I am having is quite bizarre. My *test* class, which *is* in my WAR
file, is not being found.
<error message="com.bedarra.continuousbuild.example.tests.cactus.TestHello"
type="java.lang.ClassNotFoundException">java.lang.ClassNotFoundException:
com.bedarra.continuousbuild.example.tests.cactus.TestHello
at java.net.URLClassLoader$1.run(URLClassLoader.java:198)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:186)
at java.lang.ClassLoader.loadClass(ClassLoader.java:299)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:265)
at java.lang.ClassLoader.loadClass(ClassLoader.java:255)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:315)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:140)
at
org.apache.cactus.integration.ant.CactusTask.executeInContainer(CactusTask.j
ava:412)
at
org.apache.cactus.integration.ant.CactusTask.execute(CactusTask.java:250)
</error>
If I unzip the cactified WAR (just to show the files) I get this:
Archive: build/temp/cactus-Hello-20030723.war
creating: META-INF/
inflating: META-INF/MANIFEST.MF
creating: WEB-INF/
creating: WEB-INF/classes/
creating: WEB-INF/classes/com/
creating: WEB-INF/classes/com/bedarra/
creating: WEB-INF/classes/com/bedarra/continuousbuild/
creating: WEB-INF/classes/com/bedarra/continuousbuild/example/
creating: WEB-INF/classes/com/bedarra/continuousbuild/example/tests/
creating:
WEB-INF/classes/com/bedarra/continuousbuild/example/tests/cactus/
inflating:
WEB-INF/classes/com/bedarra/continuousbuild/example/HelloWorldServlet.class
inflating:
WEB-INF/classes/com/bedarra/continuousbuild/example/tests/cactus/TestHello.c
lass
inflating: hi.jsp
inflating: jspRedirector.jsp
inflating: WEB-INF/web.xml
creating: WEB-INF/lib/
inflating: WEB-INF/lib/aspectjrt-1.0.6.jar
inflating: WEB-INF/lib/cactus-1.5-beta1.jar
inflating: WEB-INF/lib/commons-logging-1.0.3.jar
inflating: WEB-INF/lib/commons-httpclient-2.0-beta2.jar
inflating: WEB-INF/lib/junit.jar
Any idea ? My Ant target looks like this:
<target name="test-cactus" depends="war-cactus" description="Runs
Cactus tests">
<condition property="cactus.ok">
<and>
<available file="${tools.jar}"/>
<available file="${cactus.home}/lib" type="dir"/>
</and>
</condition>
<fail unless="cactus.ok">Missing pre-req JAR file for Cactus.
Check build.properties.</fail>
<!-- Define the Cactus tasks -->
<path id="cactus.classpath">
<pathelement path="${tools.jar}"/>
<fileset dir="${cactus.home}/lib" >
<include name="*.jar"/>
</fileset>
</path>
<property name="cactus.classpath" refid="cactus.classpath"/>
<taskdef resource="cactus.tasks"
classpathref="cactus.classpath"/>
<cactifywar
srcfile="${build.dir.temp}/${war.name}"
destfile="${build.dir.temp}/cactus-${war.name}">
</cactifywar>
<cactus
warfile="${build.dir.temp}/cactus-${war.name}"
printsummary="yes"
failureproperty="testsFailed">
<containerset>
<tomcat4x dir="${tomcat.home}"
port="${tomcat.local.port}"
todir="${reports.dir.cactus.tomcat}"/>
</containerset>
<formatter type="xml"/>
<batchtest>
<fileset dir="${src.dir}">
<include name="**/cactus/*.java"/>
</fileset>
</batchtest>
</cactus>
</target>
Anyway, this is the output from Ant:
test-cactus:
[cactifywar] Analyzing war:
C:\marcio\eclipse\ss\com.bedarra.continuousbuild.example\build\temp\Hello-20
030723.war
[cactifywar] Building war:
C:\marcio\eclipse\ss\com.bedarra.continuousbuild.example\build\temp\cactus-H
ello-20030723.war
[cactus]
-----------------------------------------------------------------
[cactus] Running tests against Tomcat 4.1.24
[cactus]
-----------------------------------------------------------------
[cactus] Deleting 16 files from
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x
[cactus] Deleted 17 directories from
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x
[cactus] HttpConnector Opening server socket on all host IP addresses
[cactus] Starting service Tomcat-Standalone
[cactus] Apache Tomcat/4.1.24
[cactus] HostConfig[localhost]: Expanding web application archive
cactus-Hello-20030723.war
[cactus] StandardHost[localhost]: Installing web application at
context path /cactus-Hello-20030723 from URL
file:C:/DOCUME~1/marcio/LOCALS~1/Temp/cactus/tomcat4x/webapps/cactus-Hello-2
0030723
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploying class
repositories to work directory C:\Documents and Settings\marcio\Local
Settings\Temp\cactus\tomcat4x\work\Standalone\localhost\cactus-Hello-2003072
3
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy class files
/WEB-INF/classes to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\classes
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy JAR
/WEB-INF/lib/aspectjrt-1.0.6.jar to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\lib\aspectjrt-1.0.6.jar
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy JAR
/WEB-INF/lib/cactus-1.5-beta1.jar to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\lib\cactus-1.5-beta1.jar
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy JAR
/WEB-INF/lib/commons-httpclient-2.0-beta2.jar to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\lib\commons-httpclient-2.0-beta2.jar
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy JAR
/WEB-INF/lib/commons-logging-1.0.3.jar to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\lib\commons-logging-1.0.3.jar
[cactus] WebappLoader[/cactus-Hello-20030723]: Deploy JAR
/WEB-INF/lib/junit.jar to
C:\DOCUME~1\marcio\LOCALS~1\Temp\cactus\tomcat4x\webapps\cactus-Hello-200307
23\WEB-INF\lib\junit.jar
[cactus] StandardManager[/cactus-Hello-20030723]: Seeding random
number generator class java.security.SecureRandom
[cactus] StandardManager[/cactus-Hello-20030723]: Seeding of random
number generator has been completed
[cactus] StandardWrapper[/cactus-Hello-20030723:default]: Loading
container servlet default
[cactus] StandardWrapper[/cactus-Hello-20030723:invoker]: Loading
container servlet invoker
[cactus] HttpConnector[8080] Starting background thread
[cactus] Running
com.bedarra.continuousbuild.example.tests.cactus.TestHello
[cactus] Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 0 sec
[cactus] TEST
com.bedarra.continuousbuild.example.tests.cactus.TestHello FAILED
[cactus] Stopping service Tomcat-Standalone
[cactus] HttpConnector[8080] Stopping background thread
[cactus] StandardHost[localhost]: Removing web application at context
path /cactus-Hello-20030723
The problem is the line:
[cactus] TEST
com.bedarra.continuousbuild.example.tests.cactus.TestHello FAILED
Anyway, any idea ? Thanks,
marcio
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]