[jira] Updated: (AXIS-1975) problem with operations with out parameters

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] Updated: (AXIS-1975) problem with operations with out parameters

JIRA axis-dev@ws.apache.org
     [ http://issues.apache.org/jira/browse/AXIS-1975?page=all ]

Cédric Chabanois updated AXIS-1975:
-----------------------------------

    Attachment: patch-AXIS-1975.txt

patch to correct this bug and junit test

> problem with operations with out parameters
> -------------------------------------------
>
>          Key: AXIS-1975
>          URL: http://issues.apache.org/jira/browse/AXIS-1975
>      Project: Axis
>         Type: Bug
>   Components: Basic Architecture
>     Versions: 1.2
>  Environment: Windows
>     Reporter: Cédric Chabanois
>  Attachments: bugout.zip, patch-AXIS-1975.txt
>
> I declared an operation with an out parameter :
>   <service name="bugout" provider="java:RPC">
>     <parameter name="allowedMethods" value="*"/>
>     <parameter name="wsdlPortType" value="bugout"/>
>     <parameter name="wsdlTargetNamespace" value="http://bugout/"/>
>     <parameter name="className" value="test.server.BugOutBindingImpl"/>
>     <operation name="letsbug">
>       <parameter mode="OUT" name="outparam"/>
>       <parameter mode="IN" name="inparam"/>
>     </operation>
>   </service>
>   public void letsbug(ShortHolder outparam, byte inparam)
>        throws java.rmi.RemoteException
>   {
>  outparam.value = 80;
>   }
> When I invoke this operation, I got the following exception :
> - Tried to invoke method public void test.server.BugOutBindingImpl.letsbug(javax.xml.rpc.holders.ShortHolder,byte) throw
> s java.rmi.RemoteException with arguments java.lang.Byte,javax.xml.rpc.holders.ShortHolder.  The arguments do not match
> the signature.
> java.lang.IllegalArgumentException: argument type mismatch
>         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:585)
>         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:319)
>         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.axis.server.AxisServer.invoke(AxisServer.java:281)
>         at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:699)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:709)
>         at org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:327)
>         at javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
>         at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:252)
>         at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:173)
>         at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>         at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:178)
>         at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:126)
>         at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:105)
>         at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:107)
>         at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:148)
>         at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:825)
>         at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:738)
>         at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:526)
>         at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:80)
>         at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:684)
>         at java.lang.Thread.run(Thread.java:595)
> I debugged axis and found that in org.apache.axis.providers.java.RPCProvider.processMessage, the arguments to invokeMethod were :
> [Byte : 18, javax.xml.rpc.holders.ShortHolder]
> They are not in the right order...

--
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