ClassNotFoundException for the test class in arquillian ServletTestRunner
abhishuk Feb 1, 2012 12:28 PMI am trying to execute a JUnit testcase with Arquillian in Eclipse Indigo on JBoss 5.1 EAP.
The test EAR deploys perfectly on JBoss via Arquillian, but the Arquillian ServletTestRunner throw ClassNotFoundException while trying to execute test cases.
Here's the stack trace that I see on JUnit Console:
java.lang.ClassNotFoundException: com.espn.authorizationmgr.ejb.ArquillianADManagerTest
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:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.executeTest(ServletTestRunner.java:158)
at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.execute(ServletTestRunner.java:126)
at org.jboss.arquillian.protocol.servlet.runner.ServletTestRunner.doGet(ServletTestRunner.java:90)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:235)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:183)
at org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:95)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.process(SecurityContextEstablishmentValve.java:126)
at org.jboss.web.tomcat.security.SecurityContextEstablishmentValve.invoke(SecurityContextEstablishmentValve.java:70)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:158)
at org.apache.catalina.authenticator.SingleSignOn.invoke(SingleSignOn.java:383)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:330)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:829)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:598)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:451)
at java.lang.Thread.run(Thread.java:662)
My TestClass is:
/**
*
*/
package com.espn.authorizationmgr.ejb;
import static org.junit.Assert.assertNotNull;
import javax.ejb.EJB;
import org.jboss.arquillian.container.test.api.Deployment;
import org.jboss.arquillian.junit.Arquillian;
import org.jboss.shrinkwrap.api.ShrinkWrap;
import org.jboss.shrinkwrap.api.spec.EnterpriseArchive;
import org.jboss.shrinkwrap.api.spec.JavaArchive;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
import com.espn.activedirectory.MemberNotInGroupException;
import com.espn.authorizationmgr.ejb.impl.ActiveDirectoryDelegateBean;
/**
* @author shuklaa
*
*/
@RunWith(Arquillian.class)
public class ArquillianADManagerTest {
private static ActiveDirectoryDelegate.Remote activeDirectoryDelegate = null;
private static final String TEST_ADD_USERID = "xxxx";
private static final String TEST_REMOVE_USERID = "xxxx";
private static final String TEST_GROUP = "xxxxxxx";
@EJB
ActiveDirectoryDelegate.Local activeDirecotryDelegate;
@Deployment
public static EnterpriseArchive createTestArchive() {
JavaArchive ejb = ShrinkWrap
.create(JavaArchive.class, "authorizationmgr-test-ejb.jar")
.addClasses(ActiveDirectoryDelegate.class, ActiveDirectoryDelegate.Local.class, ActiveDirectoryDelegate.Remote.class,
ActiveDirectoryDelegateBean.class).addPackages(true, "com.espn.authorizationmgr.entity")
.addPackages(true, "com.espn.authorizationmgr.exception").addPackages(true, "com.espn.authorizationmgr.message")
.addAsManifestResource("test-persistence.xml", "META-INF/persistence.xml");
EnterpriseArchive ear = ShrinkWrap.create(EnterpriseArchive.class, "authorizationmgr-test.ear").addAsModule(ejb);
System.out.println(ejb.toString(true));
System.out.println(ear.toString(true));
return ear;
}
@BeforeClass
public static void setUpClass() throws Exception {
System.out.println("Set Up.");
}
public void cleanUpTestData() throws Exception {
System.out.println("cleanUpTestData");
try {
activeDirectoryDelegate.removeFromGroup("XXXX", TEST_ADD_USERID, TEST_GROUP);
System.out.println("cleanUpTestData removed successfully");
} catch (MemberNotInGroupException e) {
// Ignore
System.out.println("MemberNotInGroupException cleaning up test data: " + e.getMessage());
} catch (Exception e) {
// Ignore
System.out.println("exception cleaning up test data: " + e.getMessage());
}
// try {
// activeDirectoryDelegate.addToGroup(TEST_REMOVE_USERID, TEST_GROUP);
// } catch (MemberAlreadyInGroupException e) {
// // Ignore
// System.out.println("MembeAlreadyInGroupException cleaning up test data: "+e.getMessage());
// }catch (Exception e) {
// // Ignore
// System.out.println("exception cleaning up test data: "+e.getMessage());
// }
}
@Test
public void testAddingSomeoneToGroup() {
System.out.println("testAddingSomeoneToGroup");
try {
addToGroup();
cleanUpTestData();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public void addToGroup() throws Exception {
System.out.println("adding to group");
activeDirectoryDelegate.addToGroup("XXXX", TEST_ADD_USERID, TEST_GROUP);
System.out.println("add successful");
}
public void removeFromGroup() throws Exception {
System.out.println("removing from group");
activeDirectoryDelegate.removeFromGroup("XXXX", TEST_REMOVE_USERID, TEST_GROUP);
System.out.println("remove successful");
}
}
Wondering if someone can help...