jakarta-cactus-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Xie, Jinpeng" <J...@admin.fsu.edu>
Subject RE: How to run Cactus in VA 3.5.3
Date Wed, 31 Jul 2002 13:59:05 GMT
	I have not received any answer to my post. After I read Cactus
architecture, I am pretty sure that this problem is related to class loader.
I added one line of code as indicated below to print stack trace. The
exception is thrown from junit.framework.TestSuite(java.lang.Class). I can
get class name. But reflect can not get methods from class. 
	I never reach beginXXX method and test client never calls redirect
servlet. So the problem is related to class loader ore java reflect. I am
using VA 3.5.3 and cactus 1.2 or 1.3, and junit 3.7.


	Your help is appreciated.


	Jim


----------------------------------------------------------------------------
----------------------------------------------------------
	/**
	 * Returns the Test corresponding to the given suite. This is
	 * a template method, subclasses override runFailed(),
clearStatus().
	 */
	public Test getTest(String suiteClassName) {
		if (suiteClassName.length() <= 0) {
			clearStatus();
			return null;
		}
		Class testClass= null;
		try {
			testClass= loadSuiteClass(suiteClassName);
		} catch (ClassNotFoundException e) {
			String clazz= e.getMessage();
			if (clazz == null) 
				clazz= suiteClassName;
			runFailed("Class not found \""+clazz+"\"");
			return null;
		} catch(Exception e) {
			runFailed("Error: "+e.toString());
			return null;
		}
		Method suiteMethod= null;
		try {
			suiteMethod= testClass.getMethod(SUITE_METHODNAME,
new Class[0]);
	 	} catch(Exception e) {
	 		// try to extract a test suite automatically
			clearStatus();			
			return new TestSuite(testClass);
		}
		Test test= null;
		try {
			test= (Test)suiteMethod.invoke(null, new Class[0]);
// static method
			if (test == null)
				return test;
		} 
		catch (InvocationTargetException e) {
			e.printStackTrace();	//********************** I
added this line to print stack trace. *************
			runFailed("Failed to invoke suite():" +
e.getTargetException().toString());
			return null;
		}
		catch (IllegalAccessException e) {
			runFailed("Failed to invoke suite():" +
e.toString());
			return null;
		}
		
		clearStatus();
		return test;
	}

----------------------------------------------------------------------------
-------

>  -----Original Message-----
> From: 	Xie, Jinpeng  
> Sent:	Tuesday, July 30, 2002 2:49 PM
> To:	'cactus-user@jakarta.apache.org'
> Subject:	How to run Cactus in VA 3.5.3
> 
> I followed the instruction in 'HOW-TO'.  Once I run
> org.apache.cactus.sample.TestSampleServlet from VA, I got the following
> error:
> 
> 
> ava.lang.reflect.InvocationTargetException: java.lang.NoClassDefFoundError
> 	java.lang.Throwable()
> 	java.lang.Error()
> 	java.lang.LinkageError()
> 	java.lang.NoClassDefFoundError()
> 	java.lang.reflect.Method [] java.lang.Class.getMethods0(int)
> 	java.lang.reflect.Method [] java.lang.Class.getDeclaredMethods()
> 	junit.framework.TestSuite(java.lang.Class)
> 	junit.framework.Test
> org.apache.cactus.sample.TestSampleServlet.suite()
> 	java.lang.Object java.lang.reflect.Method.invoke(java.lang.Object,
> java.lang.Object [])
> 	junit.framework.Test
> junit.runner.BaseTestRunner.getTest(java.lang.String)
> 	void junit.awtui.TestRunner.runSuite()
> 	void junit.awtui.TestRunner.start(java.lang.String [])
> 	void junit.ui.TestRunner.main(java.lang.String [])
> 	void
> org.apache.cactus.sample.TestSampleServlet.main(java.lang.String [])
> 
> 
> I checked all classes that are in classpath. By the way, how do I run test
> cases in Cactus? from web url or from main method?
> 
> 
> Jim

--
To unsubscribe, e-mail:   <mailto:cactus-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:cactus-user-help@jakarta.apache.org>


Mime
View raw message