Hi all,
I'm having problems hunting down the source of a ClassNotFoundException
thrown while running a web app that uses EJBs.
First off the client code (edited for the sake of brevity): -
package com.paribus.hemlatta.clients.people;
...
import com.paribus.hemlatta.interfaces.data.*;
public final class PersonSearchAction extends Action
{
public ActionForward perform( ActionMapping mapping, ActionForm form,
HttpServletRequest req, HttpServletResponse res)
throws IOException, ServletException
{
...
if("init".equals(action))
{
...
}
else
{
PersonSearchForm searchForm = (PersonSearchForm) form;
// Blank search string implies "find all" for now.
if(searchForm.getSearchStr() == null ||
searchForm.getSearchStr().length() < 1)
{
try
{
Context ic = new InitialContext();
Object objref = ic.lookup("PersonEJB");
PersonHome home =
(PersonHome) PortableRemoteObject.narrow(objref,
PersonHome.class);
Collection all = home.findAll();
if(servlet.getDebug() >= 1)
servlet.log("PersonSearchAction: Found "+ all.size() +"
people");
searchForm.setResults(all);
}
catch(NamingException e)
{
e.printStackTrace();
}
catch(FinderException e)
{
e.printStackTrace();
}
}
...
return mapping.findForward("success");
}
}
return mapping.findForward("success");
}
}...
This is packaged in a WAR file that includes WEB-INF/lib/interfaces.jar
containing PersonHome.class.
I'm running with tomcat embedded, so the war file is packaged with the EJB
jars into an ear file. The ear file deploys fine.
When the code runs it generates this stack trace: -
[EmbeddedTomcat] java.lang.ClassNotFoundException: com.paribus.hemlatta.inte
rfaces.data.PersonHome
[EmbeddedTomcat] at javax.management.loading.MLet.findClass(MLet.java:800)
[EmbeddedTomcat] at java.lang.ClassLoader.loadClass(ClassLoader.java:297)
[EmbeddedTomcat] at java.lang.ClassLoader.loadClass(ClassLoader.java:253)
[EmbeddedTomcat] at
java.lang.ClassLoader.loadClassInternal(ClassLoader.java:313)
[EmbeddedTomcat] at java.lang.Class.forName0(Native Method)
[EmbeddedTomcat] at java.lang.Class.forName(Class.java:195)
[EmbeddedTomcat] at
sun.rmi.server.MarshalInputStream.resolveProxyClass(MarshalInputStream.java:
183)
[EmbeddedTomcat] at
java.io.ObjectInputStream.inputProxyClassDescriptor(ObjectInputStream.java:9
82)
[EmbeddedTomcat] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:370)
[EmbeddedTomcat] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
[EmbeddedTomcat] at
java.io.ObjectInputStream.inputObject(ObjectInputStream.java:1186)
[EmbeddedTomcat] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:386)
[EmbeddedTomcat] at
java.io.ObjectInputStream.readObject(ObjectInputStream.java:236)
[EmbeddedTomcat] at
java.rmi.MarshalledObject.get(MarshalledObject.java:138)
[EmbeddedTomcat] at
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:299)
[EmbeddedTomcat] at
org.jnp.interfaces.NamingContext.lookup(NamingContext.java:279)
[EmbeddedTomcat] at
javax.naming.InitialContext.lookup(InitialContext.java:350)
[EmbeddedTomcat] at
com.paribus.hemlatta.clients.people.PersonSearchAction.perform(PersonSearchA
ction.java:84)
[EmbeddedTomcat] at
org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.ja
va:1726)
[EmbeddedTomcat] at
org.apache.struts.action.ActionServlet.process(ActionServlet.java:1536)
[EmbeddedTomcat] at
org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509)
[EmbeddedTomcat] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
[EmbeddedTomcat] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[EmbeddedTomcat] at
org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:405)
[EmbeddedTomcat] at
org.apache.tomcat.core.Handler.service(Handler.java:287)
[EmbeddedTomcat] at
org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
[EmbeddedTomcat] at
org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:79
7)
[EmbeddedTomcat] at
org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
[EmbeddedTomcat] at
org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpC
onnectionHandler.java:213)
[EmbeddedTomcat] at
org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
[EmbeddedTomcat] at
org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:501)
[EmbeddedTomcat] at java.lang.Thread.run(Thread.java:484)
I've checked through the archive for this exception - most of the advice was
"check that the interfaces are in a jar file in the web-inf/lib dir", which
I've done.
Any help greatly appreciated - I'm at a loss.
cheers,
jim
[EMAIL PROTECTED]
_______________________________________________
JBoss-user mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-user