Hi,
I set up a Axis Server on Tomcat4b3 and I try to invoke a web service on it from
a .Net Client. Everything worked fine untill I used a method enterItem(String
session, Order order) where order is a bean. If this method is invoked by the
.Net Client, the business logic is working, meaning the item is added in the
database. However, the response the .Net Client gets back is an exception:
Unhandled Exception: System.Web.Services.Protocols.SoapException:
java.lang.IllegalArgumentException: argument type mismatch

With a WSDL2Java client it just works fine ...
I compared the two SOAP requests, that's what I found out:
The WSDL2Java client request includes a multiRef tag with other specs then the
.Net Client  (see the attached requests).
Could anybody please help me to fix this problem ? What is it related to and why
is the Axis implementation executing the business logic perfectly, but throwing
an exception at the end ??

Thanks in advance.

mfg,

Kai.




The WSDL2Java client request:
<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/";>
 <SOAP-ENV:Body>
  <ns1:enterItem xmlns:ns1="enterItem">
   <id xsi:type="xsd:string">7245716</id>
   <order href="#id0"/>
  </ns1:enterItem>
  <multiRef id="id0" SOAP-ENC:root="0"
encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"; xsi:type="ns3:Order"
xmlns:ns2="http://schemas.xmlsoap.org/soap/envelope/:encodingStyle";
xmlns:ns3="urn:service.ws">
   <prod xsi:type="xsd:string">CDROM</prod>
   <price xsi:type="xsd:string">12345</price>
  </multiRef>
 </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

The .Net Client request:
<?xml version="1.0" encoding="utf-8"?>
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:tns="http://localhost/axis/services/login";
xmlns:types="http://localhost/axis/services/login/encodedTypes";
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
     <soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/";>
          <q1:enterItem xmlns:q1="enterItem">
               <id xsi:type="xsd:string">14467747</id>
               <order href="#id1" />
          </q1:enterItem>
          <q2:Order id="id1" xsi:type="q2:Order" xmlns:q2="urn:service.ws">
               <prod xsi:type="xsd:string">CDROM </prod>
               <price xsi:type="xsd:string">12345</price>
          </q2:Order>
     </soap:Body>
</soap:Envelope>


On the server side I get this exception:

- Exception:
java.lang.IllegalArgumentException: argument type mismatch
        at org.apache.axis.AxisFault.makeFault(AxisFault.java:116)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
267)
        at org.apache.axis.strategies.InvocationStrategy.visit(InvocationStrateg
y.java:71)
        at org.apache.axis.SimpleChain.doVisiting(SimpleChain.java:154)
        at org.apache.axis.SimpleChain.invoke(SimpleChain.java:121)
        at org.apache.axis.server.AxisServer.invoke(AxisServer.java:288)
        at org.apache.axis.transport.http.AxisServlet.doPost(AxisServlet.java:57
6)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
icationFilterChain.java:247)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
ilterChain.java:193)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
alve.java:243)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
alve.java:190)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve
.java:246)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:
2347)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
ava:180)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatche
rValve.java:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
ava:170)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:
468)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:564)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
ve.java:174)
        at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline
.java:566)
        at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.jav
a:472)
        at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)

        at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcesso
r.java:1027)
        at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.ja
va:1125)
        at java.lang.Thread.run(Thread.java:536)
Caused by: 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(DelegatingMethodAcces
sorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:324)
        at org.apache.axis.providers.java.RPCProvider.processMessage(RPCProvider
.java:229)
        at org.apache.axis.providers.java.JavaProvider.invoke(JavaProvider.java:
262)
--
Diese E-Mail enthaelt vertrauliche oder rechtlich geschuetzte Informationen.
Wenn Sie nicht der beabsichtigte Empfaenger sind, informieren Sie bitte
sofort den Absender und loeschen Sie diese E-Mail. Das unbefugte Kopieren
dieser E-Mail oder die unbefugte Weitergabe der enthaltenenen Informationen
ist nicht gestattet.

The information contained in this message is confidential or protected by
law. If you are not the intended recipient, please contact the sender and
delete this message. Any unauthorised copying of this message or
unauthorised distribution of the information contained herein is prohibited.


Reply via email to