You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by __matthewHawthorne <ma...@apache.org> on 2004/01/06 00:10:08 UTC

ClassCastException using java:EJB provider

I'm using the java:EJB provider to deploy a stateless session bean as a 
web service.  The session bean is a facade to underlying entity beans. 
I have some code in place which converts the local entity references to 
value objects that are returned from the web service using the bean 
serializers and deserializers.

After adding some more beans to the tree today, I began getting a 
ClassCastException.  The code can execute flawlessly on the server side 
(invoking the method on the session bean directly).  However, when I 
attempt to invoke it via the web service I have problems.

It appears that Axis isn't finding what it expects at the provided jndi 
name.  But I've double-checked and the jndi name for the session bean is 
correct.  It doesn't appear that the method is being invoked at all. 
Any other ideas on what could be causing this?

Thanks!


15:02:36,528 DEBUG [enterprise] Mapping Exception to AxisFault
java.lang.ClassCastException
	at 
com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293)
	at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
	at 
org.apache.axis.providers.java.EJBProvider.createRemoteEJB(EJBProvider.java:168)
	at 
org.apache.axis.providers.java.EJBProvider.makeNewServiceObject(EJBProvider.java:147)
	at 
org.apache.axis.providers.java.JavaProvider.getNewServiceObject(JavaProvider.java:261)
	at 
org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:138)
	at 
org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:313)
	at 
org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71)
	at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
	at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
	at org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
	at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
	at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
	at 
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
	at 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
	at 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
	at 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:220)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStatsValve.java:76)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.StandardContext.invoke(StandardContext.java:2416)
	at 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643)
	at 
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:65)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641)
	at 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
	at 
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.invokeNext(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:601)
	at 
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392)
	at 
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
	at 
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619)
	at java.lang.Thread.run(Thread.java:534)


Re: ClassCastException using java:EJB provider

Posted by __matthewHawthorne <ma...@apache.org>.
__matthewHawthorne wrote:
> And now I just noticed this during deployment:
> 
> 15:31:31,760 INFO  [ParamNameExtractor] AXIS error:java.io.IOException: 
> Unable to load bytecode for class 
> "mil.navy.nicweb.dos.ejb.PorSiteLinkFacade"
> 
> That's the remote interface to the session bean that I'm attempting to 
> deploy using java:EJB.
> 
> What a weird error!  I've seen similar bytecode errors, and they usually 
> have something to do with the JRE version.  And, I *did* just upgrade my 
> JRE on Friday to 1.4.2_03 -- but why would Axis care?
> 
> Ugh...


I've uncovered the root of this error.  If I redeploy my ear file 
without reloading the Axis webapp, I get ClassCastExceptions.  If I 
reload the Axis webapps, things work fine.

This seems strange to me.  Could this be considered a bug?


Re: ClassCastException using java:EJB provider

Posted by __matthewHawthorne <ma...@apache.org>.
And now I just noticed this during deployment:

15:31:31,760 INFO  [ParamNameExtractor] AXIS error:java.io.IOException: 
Unable to load bytecode for class 
"mil.navy.nicweb.dos.ejb.PorSiteLinkFacade"

That's the remote interface to the session bean that I'm attempting to 
deploy using java:EJB.

What a weird error!  I've seen similar bytecode errors, and they usually 
have something to do with the JRE version.  And, I *did* just upgrade my 
JRE on Friday to 1.4.2_03 -- but why would Axis care?

Ugh...


__matthewHawthorne wrote:
> I'm using the java:EJB provider to deploy a stateless session bean as a 
> web service.  The session bean is a facade to underlying entity beans. I 
> have some code in place which converts the local entity references to 
> value objects that are returned from the web service using the bean 
> serializers and deserializers.
> 
> After adding some more beans to the tree today, I began getting a 
> ClassCastException.  The code can execute flawlessly on the server side 
> (invoking the method on the session bean directly).  However, when I 
> attempt to invoke it via the web service I have problems.
> 
> It appears that Axis isn't finding what it expects at the provided jndi 
> name.  But I've double-checked and the jndi name for the session bean is 
> correct.  It doesn't appear that the method is being invoked at all. Any 
> other ideas on what could be causing this?
> 
> Thanks!
> 
> 
> 15:02:36,528 DEBUG [enterprise] Mapping Exception to AxisFault
> java.lang.ClassCastException
>     at 
> com.sun.corba.se.internal.javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:293) 
> 
>     at javax.rmi.PortableRemoteObject.narrow(PortableRemoteObject.java:134)
>     at 
> org.apache.axis.providers.java.EJBProvider.createRemoteEJB(EJBProvider.java:168) 
> 
>     at 
> org.apache.axis.providers.java.EJBProvider.makeNewServiceObject(EJBProvider.java:147) 
> 
>     at 
> org.apache.axis.providers.java.JavaProvider.getNewServiceObject(JavaProvider.java:261) 
> 
>     at 
> org.apache.axis.providers.java.JavaProvider.getServiceObject(JavaProvider.java:138) 
> 
>     at 
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:313)
>     at 
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:71) 
> 
>     at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:150)
>     at org.apache.axis.SimpleChain.invoke(SimpleChain.java:120)
>     at 
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:481)
>     at org.apache.axis.server.AxisServer.invoke(AxisServer.java:323)
>     at 
> org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:854)
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
>     at 
> org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:339) 
> 
>     at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
>     at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247) 
> 
>     at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193) 
> 
>     at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:256) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.java:191) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
> 
>     at 
> org.jboss.web.tomcat.security.JBossSecurityMgrRealm.invoke(JBossSecurityMgrRealm.java:220) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
> 
>     at 
> org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
> 
>     at 
> org.jboss.web.tomcat.tc4.statistics.ContainerStatsValve.invoke(ContainerStatsValve.java:76) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.StandardContext.invoke(StandardContext.java:2416)
>     at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:643) 
> 
>     at 
> org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:171) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
> 
>     at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
> 
>     at 
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:65) 
> 
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(StandardPipeline.java:641) 
> 
>     at 
> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:577)
>     at 
> org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invokeNext(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.invokeNext(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:601)
>     at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:392) 
> 
>     at 
> org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:565)
>     at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:619) 
> 
>     at java.lang.Thread.run(Thread.java:534)
>