[ http://issues.apache.org/jira/browse/GERONIMO-650?page=all ]
David Blevins reassigned GERONIMO-650:
--------------------------------------
Assign To: David Blevins
> POJO ws should not need to implement SEI
> ----------------------------------------
>
> Key: GERONIMO-650
> URL: http://issues.apache.org/jira/browse/GERONIMO-650
> Project: Geronimo
> Type: Bug
> Components: webservices
> Versions: 1.0-M3
> Reporter: David Jencks
> Assignee: David Blevins
> Fix For: 1.0-M4
>
> I have not investigated the code but based on the following stack trace I
> doubt we are correctly implementing ewebsvcs-1_1-mr-spec section 5.3.2.2:
> The Service Implementation Bean may implement the Service Endpoint Interface
> as defined by the JAX-RPC Servlet model. The bean must implement all the
> method signatures of the SEI. In addition, a Service Implementation Bean may
> be implemented that does not implement the SEI. This additional requirement
> provides the same SEI implementation flexibility as provided by EJB service
> endpoints. The business methods of the bean must be public and must not be
> static. If the Service Implementation Bean does not implement the SEI, the
> business methods must not be final. The Service Implementation Bean may
> implement other methods in addition to those defined by the SEI, but only
> the SEI methods are exposed to the client.
> The app has a POJO implementing the same methods as but not extending the SEI.
> stacktrace:
> 12:01:28,427 INFO [RPCProvider] Tried to invoke method public abstract
> java.lang.String foo.FooWs.foo(java.lang.String) throws
> java.rmi.RemoteException with arguments java.lang.String. The arguments do
> not match the signature.
> java.lang.IllegalArgumentException: object is not an instance of declaring
> class
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> at java.lang.reflect.Method.invoke(Method.java:324)
> at
> org.apache.axis.providers.java.RPCProvider.invokeMethod(RPCProvider.java:388)
> at
> org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:283)
> at
> org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:323)
> at
> org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrategy.java:32)
> at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:118)
> at org.apache.axis.SimpleChain.invoke(SimpleChain.java:83)
> at
> org.apache.axis.handlers.soap.SOAPService.invoke(SOAPService.java:453)
> at
> org.apache.geronimo.axis.server.AxisWebServiceContainer.invoke(AxisWebServiceContainer.java:126)
> at
> org.apache.geronimo.webservices.WebServiceContainerInvoker.service(WebServiceContainerInvoker.java:78)
> at
> org.apache.geronimo.webservices.POJOWebServiceServlet.service(POJOWebServiceServlet.java:79)
> at
> org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:427)
> at
> org.apache.geronimo.jetty.JettyPOJOWebServiceHolder.handle(JettyPOJOWebServiceHolder.java:105)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:832)
> at
> org.mortbay.jetty.servlet.JSR154Filter.doFilter(JSR154Filter.java:171)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler$CachedChain.doFilter(WebApplicationHandler.java:823)
> at
> org.mortbay.jetty.servlet.WebApplicationHandler.dispatch(WebApplicationHandler.java:473)
> at
> org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:567)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1565)
> at
> org.mortbay.jetty.servlet.WebApplicationContext.handle(WebApplicationContext.java:623)
> at org.mortbay.http.HttpContext.handle(HttpContext.java:1517)
> at org.mortbay.http.HttpServer.service(HttpServer.java:954)
> at org.mortbay.http.HttpConnection.service(HttpConnection.java:814)
> at org.mortbay.http.HttpConnection.handleNext(HttpConnection.java:981)
> at org.mortbay.http.HttpConnection.handle(HttpConnection.java:831)
> at
> org.mortbay.http.SocketListener.handleConnection(SocketListener.java:244)
> at org.mortbay.util.ThreadedServer.handle(ThreadedServer.java:357)
> at org.mortbay.util.ThreadPool$PoolThread.run(ThreadPool.java:534)
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira