Re: Calling Java WebService from .net Client

From: Dan Rogers (danro_at_microsoft.com)
Date: 12/07/04


Date: Tue, 07 Dec 2004 20:32:36 GMT

Hi Christian,

Yes, There is a HUGE difference between the two. Best practice for interop
calls for using Document Literal. From what I can see, the packet being
sent back is encoded properly by the .NET code. It is entirely possible
that the java code is looking for specific XML - which is not a requirement
in RPC encoded since only the ID/IDREF pairs need to match. What toos
where the Java side written with?

Regards

Dan
--------------------
From: "Christian Wilhelm" <ch.wilhelm@bigfoot.de>
Newsgroups: microsoft.public.dotnet.framework.webservices
Subject: Re: Calling Java WebService from .net Client
Date: Tue, 7 Dec 2004 09:12:36 +0100
Lines: 171
Message-ID: <31l6vnF3d1pelU1@individual.net>
References: <31b4qnF37kjngU1@individual.net>
<R0fDycX2EHA.1512@cpmsftngxa10.phx.gbl> <31inifF3afm0lU1@individual.net>
<qkQS1j92EHA.4068@cpmsftngxa10.phx.gbl>
X-Trace: individual.net bsvx72DpLwnuiM9G2gx5zwmTMNuTCqkrEZKT5M/IzkM22CA4Y=
X-Priority: 3
X-MSMail-Priority: Normal
X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
X-RFC2646: Format=Flowed; Original
Path:
cpmsftngxa10.phx.gbl!TK2MSFTNGXA03.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.s
ul.t-online.de!t-online.de!newsfeed.freenet.de!fu-berlin.de!uni-berlin.de!in
dividual.net!not-for-mail
Xref: cpmsftngxa10.phx.gbl
microsoft.public.dotnet.framework.webservices:7935
X-Tomcat-NG: microsoft.public.dotnet.framework.webservices

Hi Dan,

> Any chance you can set these to document literal form?
Do I have to set this up in my .net-Client or on the Java-WebServer?
How can I set it up?
And what is the main differenz between literal and rpc?

Thank you very much,
 Christian

"Dan Rogers" <danro@microsoft.com> schrieb im Newsbeitrag
news:qkQS1j92EHA.4068@cpmsftngxa10.phx.gbl...
> I'm reminded why I dislike soap encoding so much.
>
> Any chance you can set these to document literal form? It gets SO much
> easier.
> --------------------
> From: "Christian Wilhelm" <ch.wilhelm@bigfoot.de>
> Newsgroups: microsoft.public.dotnet.framework.webservices
> Subject: Re: Calling Java WebService from .net Client
> Date: Mon, 6 Dec 2004 10:37:23 +0100
> Lines: 122
> Message-ID: <31inifF3afm0lU1@individual.net>
> References: <31b4qnF37kjngU1@individual.net>
> <R0fDycX2EHA.1512@cpmsftngxa10.phx.gbl>
> X-Trace: individual.net WxJre0nv4n+pgo5h6BaTgQUBGnF+5NwvokWBV8glf3mLBAiFI=
> X-Priority: 3
> X-MSMail-Priority: Normal
> X-Newsreader: Microsoft Outlook Express 6.00.2900.2180
> X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180
> X-RFC2646: Format=Flowed; Original
> Path:
>
cpmsftngxa10.phx.gbl!TK2MSFTFEED01.phx.gbl!TK2MSFTNGP08.phx.gbl!newsfeed00.s
>
ul.t-online.de!t-online.de!npeer.de.kpn-eurorings.net!fu-berlin.de!uni-berli
> n.de!individual.net!not-for-mail
> Xref: cpmsftngxa10.phx.gbl
> microsoft.public.dotnet.framework.webservices:7885
> X-Tomcat-NG: microsoft.public.dotnet.framework.webservices
>
> Hi Dan,
>
> thank you very much for your response!
>
>> type ArrayOfParameter rather than a Parameter array
> Yes, we have tried this, too. But at the end there will be a Parameter[]
> at
> all. Our class looked like this:
>
> public class ParameterList
> {
> public Parameter[] paramArray;
> ...
> }
>
> Doesn't work...
>
>> Second, have you compared a wire trace of the SOAP packet
> Yes, of course, we have. The difference between the two Requests is shown
> in
> the following snippets (transporting a ParameterList with one Parameter in
> it). Have a look at how the "ParameterList" is being transported. Can you
> give me some further advice, please?
>
> Thank you very much,
> Christian
>
> === Request of JavaClient (works) ==============================
> <?xml version="1.0" encoding="UTF-8"?>
> <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>
>
> <ns1:invokeThirdParty
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns1="http://beans.middleware.cat.company.de">
> <targetUrl
>
xsi:type="xsd:string">http://lxdev81.int.cinetic.de:8353/userdaten
> l>
> <functionName xsi:type="xsd:string">getIdentDataById</functionName>
> <systemName xsi:type="xsd:string" xsi:nil="true"/>
> <parameterList href="#id0"/>
> </ns1:invokeThirdParty>
>
> <multiRef id="id0" soapenc:root="0"
> soapenv:encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="ns2:ParameterList"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
> xmlns:ns2="http://beans.middleware.cat.company.de">
> <parameterItems xsi:type="soapenc:Array"
> soapenc:arrayType="ns2:Parameter[1]">
> <item href="#id1"/>
> </parameterItems>
> </multiRef>
>
> <multiRef id="id1" soapenc:root="0"
> soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"
> xsi:type="ns3:Parameter"
> xmlns:ns3="http://beans.middleware.cat.company.de"
> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/">
> <name xsi:type="xsd:string">UserID</name>
> <parameterValue xsi:type="xsd:int">500004136</parameterValue>
> </multiRef>
>
> </soapenv:Body>
> </soapenv:Envelope>
> =======================================================
>
>
> === Request of .net Client (doesn't work) ==========================
> <?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://beans.middleware.cat.company.de"
> xmlns:types="http://beans.middleware.cat.company.de/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/">
>
> <tns:invokeThirdParty>
> <targetUrl
>
xsi:type="xsd:string">http://lxdev81.int.cinetic.de:8353/userdaten
> l>
> <functionName xsi:type="xsd:string">getIdentDataById</functionName>
> <systemName xsi:type="xsd:string" xsi:nil="true"/>
> <parameterList href="#id1" />
> </tns:invokeThirdParty>
>
> <tns:ParameterList id="id1" xsi:type="tns:ParameterList">
> <parameterItems href="#id2" />
> </tns:ParameterList>
>
> <soapenc:Array id="id2" soapenc:arrayType="tns:Parameter[1]">
> <Item href="#id3" />
> </soapenc:Array>
>
> <tns:Parameter id="id3" xsi:type="tns:Parameter">
> <name xsi:type="xsd:string">UserID</name>
> <parameterValue xsi:type="xsd:int">500004136</parameterValue>
> </tns:Parameter>
>
> </soap:Body>
> </soap:Envelope>
> =======================================================
>
>
> "Dan Rogers" <danro@microsoft.com> schrieb im Newsbeitrag
> news:R0fDycX2EHA.1512@cpmsftngxa10.phx.gbl...
>> Hi Christian,
>>
>> I have two thoughts. Looking quickly at this WSDL, have you tried
>> passing
>> the type ArrayOfParameter rather than a Parameter array?
>>
>> Second, have you compared a wire trace of the SOAP packet to see the
>> difference between the two requests? I suspect that my first suggestion
>> is
>> what the Java clients are passing. This isn't an array, but is a type
>> unto
>> itself that happens to contain an array of other types.
>>
>> I hope this helps
>>
>> Dan Rogers
>> Microsoft Corporation
>
>
>



Relevant Pages

  • Re: TCP parameters and interpreting tcpdump output
    ... Dan> A shrinking window and no packet loss is an indication that the program ... Dan> the socket is connected to isn't reading data fast enough. ... Dan> perceived packet loss, are troubling. ... I can write to the disk at approx 6 M Bytes/sec ...
    (freebsd-questions)
  • Re: about the operation of "iptable"
    ... the iptable is how to handle the packet? ... I must agree with Dan C on this one. ... Roy S. Schestowitz | "Black holes are where God is divided by zero" ... http://iuron.com - next generation of search paradigms ...
    (alt.os.linux)