I've never tried this, but probably you either want to set "java.rmi.server.codebase" in the CATALINA_OPTS, or make certain that your stub-classes all live within WEB-INF/lib.
"Vishal Zinjuvadia" <[EMAIL PROTECTED]> wrote in message [EMAIL PROTECTED]">news:[EMAIL PROTECTED]... > Hi, > > I am trying to use a Tomcat webapp as a RMI client. > For the test purposes, my RMI server > resides on the same machine. When I use a Tomcat > webapp as a client, I consistently get a > ClassCastException, while if I use a plain java class > for the client, it works flawlessly. > > Following is my client code used in the servlet and > the plain java class. > > System.setProperty("java.rmi.server.codebase", > "file:/path/to/stubfile/"); > try { > //(line: 141) > TestInterface testIf = > (TestInterface)Naming.lookup("//localhost/Test"); > result = testIf.testMethod(); > } catch (Exception e) { > servlet.log(e.getMessage()); > e.printStackTrace(); > } > > I am using: > JDK-1.4 > tomcat-4.1.12 > > From the stack it looks like the stub file is located, > but it cannot relate it with the interface file. It > looks like the interface file and the stub files are > loaded with different class loaders and cannot be > associated. > > java.lang.ClassCastException: Test_Stub > at > com.vishal.eg.TestAction.perform(TestAction.java:141) > at > org.apache.struts.action.ActionServlet.processActionPerform(ActionServlet.ja va:1786) > at > org.apache.struts.action.ActionServlet.process(ActionServlet.java:1585) > at > org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:509) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:760) > at > javax.servlet.http.HttpServlet.service(HttpServlet.java:853) > at > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application FilterChain.java:247) > at > org.apache.catalina.core.ApplicationFilterChain.access$000(ApplicationFilter Chain.java:98) > at > org.apache.catalina.core.ApplicationFilterChain$1.run(ApplicationFilterChain .java:176) > at java.security.AccessController.doPrivileged(Native > Method) > at > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh ain.java:172) > at > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja va:260) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja va:191) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2396) > at > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180 ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) > at > org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve. java:170) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) > at > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172 ) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:641) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java :174) > at > org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok eNext(StandardPipeline.java:643) > at > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480) > at > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) > at > org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) > at > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:405) > at > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne ction(Http11Protocol.java:380) > at > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:508) > at > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav a:533) > at java.lang.Thread.run(Thread.java:536) > > Thanks in advance, > Vishal > > __________________________________________________ > Do you Yahoo!? > Yahoo! Mail Plus - Powerful. Affordable. Sign up now. > http://mailplus.yahoo.com -- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>