Uploaded image for project: 'Axis'
  1. Axis
  2. AXIS-1975

problem with operations with out parameters

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Resolved
    • Major
    • Resolution: Fixed
    • 1.2
    • None
    • Basic Architecture
    • None
    • Windows

    Description

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

      Attachments

        1. patch-AXIS-1975.txt
          6 kB
          Cédric Chabanois
        2. bugout.zip
          6 kB
          Cédric Chabanois

        Issue Links

          Activity

            People

              Unassigned Unassigned
              cchab Cédric Chabanois
              Votes:
              0 Vote for this issue
              Watchers:
              1 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: