Well , I wasn't paying much attention when all the SOAP messages were
recently flying about, so I am sorry if I'm going over old ground.
I am trying to access a web service from Universe 10.1.8 using the 

This is just a simple test service set up for testing the universe
access - taking a single string parameter and returning a string.
The service method is called but the parameter is null.

SoapRequestWrite returns :
<SOAP-ENV:Envelope
        xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/";
        xmlns:xsi="http://www.w3.org/1999/XMLSchema-instance";
        xmlns:xsd="http://www.w3.org/1999/XMLSchema";
>
<SOAP-ENV:Body>
        <ns1:TestMethod xmlns:ns1="http://mynamespace";
        
SOAP-ENV:encodingStyle="http://schemas.xmlsoap/soap/encoding/";
        >
          <Param xsi:type="xsd:string">SomeVal</Param>
        </ns1:TestMethod>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

To me the problem looked obvious : the Param element is not associated
with the ns1 namespace.
So using SoapSetRequestContent and changing the Param element to :
          <ns1:Param xsi:type="xsd:string">SomeVal</ns1:Param>
Everything works peachy.  This also works :

        <TestMethod xmlns="http://mynamespace";
        
SOAP-ENV:encodingStyle="http://schemas.xmlsoap/soap/encoding/";
        >
          <Param xsi:type="xsd:string">SomeVal</Param>
        </TestMethod>

Either way the inconstant use if the ns1 namespace is mucking things up.

So now to the question, 

Is there a config setting that I am missing that will get the proper
message format generated or is Universe Soap support really flaky ?
It does appear that manually coding the SOAP message is the only way to
go which, in my opinion, gives is no advantage over the way we were
doing this via CallHttp.

I did come up with a compromise solution :

        stat=SoapRequestWrite(SoapReq,msg,1)
        msg=change(msg,"xmlns:ns1=","xmlns=",-1)
        msg=change(msg,"ns1:","",-1)
        stat=SoapSetRequestContent(SoapReq,msg,1)
        stat=SoapSubmitRequest( ... )

Not a big deal and much better than manually coding everything but it
makes me wonder at the reliablity of U2 soap implementation.

Gerry
-------
u2-users mailing list
u2-users@listserver.u2ug.org
To unsubscribe please visit http://listserver.u2ug.org/

Reply via email to