|
I'm new to SOAP and currently running Apache SOAP
on Tomcat with JBoss. I've created a simple SOAP service with a stateless
session bean using the StatelessEJBProvider. The session bean returns an
instance of my test class: Junk. "Junk", itself is just a simple class that
holds two strings.
Everything appears to be deployed successfully, but
I'm finding an infuriating reflection exception when I attempt to invoke the
service from my client.
I get the following exception:
[Default] In TemplateProvider.invoke()
[Default] Exception Caught upon method invocation attempt: null [Default] java.lang.reflect.InvocationTargetException: [Default] java.lang.ClassCastException: mytestclasses.Junk [Default] at $Proxy16.getJunk(Unknown Source) [Default] at java.lang.reflect.Method.invoke(Native Method) [Default] at org.apache.soap.providers.StatelessEJBProvider.invoke(Unknown Source) [Default] at org.apache.soap.server.http.RPCRouterServlet.doPost(Unknown Source) [Default] at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) [Default] at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
[Default] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Unknown Source) [Default] at org.apache.catalina.core.ApplicationFilterChain.doFilter(Unknown Source) [Default] at org.apache.catalina.core.StandardWrapperValve.invoke(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) [Default] at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) [Default] at
org.apache.catalina.core.StandardContextValve.invoke(Unknown
Source)
[Default] at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source) [Default] at org.apache.catalina.valves.CertificatesValve.invoke(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) [Default] at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) [Default] at
org.apache.catalina.core.StandardContext.invoke(Unknown
Source)
[Default] at org.apache.catalina.core.StandardHostValve.invoke(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) [Default] at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) [Default] at
org.apache.catalina.core.StandardEngineValve.invoke(Unknown
Source)
[Default] at org.apache.catalina.core.StandardPipeline.invokeNext(Unknown Source) [Default] at org.apache.catalina.core.StandardPipeline.invoke(Unknown Source) [Default] at org.apache.catalina.core.ContainerBase.invoke(Unknown Source) [Default] at
org.apache.catalina.connector.http.HttpProcessor.process(Unknown
Source)
[Default] at org.apache.catalina.connector.http.HttpProcessor.run(Unknown Source) [Default] at java.lang.Thread.run(Unknown Source) After delving into the SOAP source code, I've
isolated my problem to a single line of code.
Bean result = new Bean (m.getReturnType (),
m.invoke (remoteObjRef, args));
Specifically, the issue seems to revolve around
m.invoke (remoteObjRef, args). I've verified that the remoteObjRef is not
a null value and I've also verified that every line of code in the session bean
executes without error right up to the return of the Junk object.
Any help or direction is appreciated.
Thanks in advance,
Stephen |
