Hi,

I haven't realized the whole problem, when I submitted the mail with subject
'Problem with deserealizing boolean'. In fact, I can't invoke any method
with more than a single argument, independent of the arguments' (simple)
type! A java.lang.IllegalArgumentException is thrown, because only the first
value can be deseserialized:

"Tried to invoke method public java.lang.String
test.server.TestSoapBindingImpl.printLongs(long,long) with arguments
java.lang.Long,null. The arguments do not match the signature."

Here's an example of a simple web service, that takes two longs and should
return a string.
At the end of the mail I copied a part of Axis' log file, where only the
first argument of printLongs is properly converted before the exception is
thrown.
I would be really glad, if someone could give me a hint of what I'm doing
wrong. ;-)

BTW, I'm using Axis 1.2RC2, Tomcat 5.0.19 and JDK 1.5 on Win XP.

Bye, Dave

-------------------------
 service implementation
------------------------
public class TestSoapBindingImpl implements test.server.Test{

  public String printLongs(long long_1, long long_2){
    return "long_1 = " +long_1 +", long_2 = " +long_2;
  }

}

--------------------
 client
--------------------
public class TestClient {

  public static void main (String[] args) throws Exception {
    TestService service = new TestServiceLocator();
    Test testProxy = service.gettest();

    long longVal = 1L;
    response = testProxy.printLongs(longVal, longVal);
    System.out.println(response);
  }
}

--------------------
 SOAP messsage
--------------------
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
   <soapenv:Body>
      <in6 xmlns="urn:TestNS">1</in6>
      <in7 xmlns="urn:TestNS">1</in7>
   </soapenv:Body>
</soapenv:Envelope>


-----------------
 Axis' log file
-----------------
       ...
17555  org.apache.axis.message.SAXOutputter
        - SAXOutputter.startElement ['urn:TestNS' in6]
17555  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(startElem00)
17555  org.apache.axis.encoding.SerializationContext
        - Start element [urn:TestNS]:in6
17555  org.apache.axis.message.SAXOutputter
        - SAXOutputter.characters ['1']
17766  org.apache.axis.message.SAXOutputter
        - SAXOutputter.endElement ['urn:TestNS' in6]
17766  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(endElem00)
17766  org.apache.axis.encoding.SerializationContext
        - End element in6
17766  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(empty00)
17766  org.apache.axis.utils.NSStack
        - NSPop (empty)
17766  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(bodyIs00)
17766  org.apache.axis.providers.java.RPCProvider
        - body is <in6 xmlns="urn:TestNS">1</in6>
17766  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
17766  org.apache.axis.encoding.DeserializationContext
        - Pushing handler [EMAIL PROTECTED]
17766  org.apache.axis.encoding.DeserializationContext
        - Enter: DeserializationContext::startPrefixMapping(, urn:TestNS)
17766  org.apache.axis.utils.NSStack
        - NSPush (32)
17766  org.apache.axis.utils.NSStack
        - NSPush (32)
17766  org.apache.axis.encoding.DeserializationContext
        - Exit: DeserializationContext::startPrefixMapping()
17766  org.apache.axis.encoding.DeserializationContext
        - Enter: DeserializationContext::startElement(urn:TestNS, in6)
17766  org.apache.axis.message.RPCHandler
        - Enter: RPCHandler.onStartChild()
17766  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(typeFromAttr00)
17766  org.apache.axis.message.RPCHandler
        - Type from attributes is:  null
17876  org.apache.axis.message.RPCHandler
        - Exit: RPCHandler.onStartChild()
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(pushHandler00)
17886  org.apache.axis.encoding.DeserializationContext
        - Pushing handler
[EMAIL PROTECTED]
17886  org.apache.axis.encoding.DeserializationContext
        - Exit: DeserializationContext::startElement()
17886  org.apache.axis.encoding.DeserializationContext
        - Enter: DeserializationContext::endElement(urn:TestNS, in6)
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(popHandler00)
17886  org.apache.axis.encoding.DeserializationContext
        - Popping handler
[EMAIL PROTECTED]
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(setValueInTarget00)
17886  org.apache.axis.encoding.DeserializerImpl
        - Set value 1 in target
[EMAIL PROTECTED]
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(empty00)
17886  org.apache.axis.utils.NSStack
        - NSPop (empty)
17886  org.apache.axis.encoding.DeserializationContext
        - Popped element stack to org.apache.axis.message.SOAPBody:Body
17886  org.apache.axis.encoding.DeserializationContext
        - Exit: DeserializationContext::endElement()
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(convert00)
17886  org.apache.axis.utils.JavaUtils
        - Trying to convert java.lang.Long to long
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(value00)
17886  org.apache.axis.providers.java.RPCProvider
        -   value:  1
17886  org.apache.axis.i18n.ProjectResourceBundle
        - org.apache.axis.i18n.resource::handleGetObject(dispatchIAE00)
17986  org.apache.axis.providers.java.RPCProvider
        - Tried to invoke method public java.lang.String
test.server.TestSoapBindingImpl.printLongs(long,long) with arguments
java.lang.Long,null.  The arguments do not match the signature.
java.lang.IllegalArgumentException
        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:384
)
      at
org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider.java:2
81)
        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:450)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:285)
        at 
org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:653)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:763)
        at
org.apache.axis.transport.http.AxisServletBase.service(AxisServletBase.java:
301)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
  ...

Reply via email to