You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Thomas Börkel <tb...@ap-ag.com> on 2002/11/26 16:34:30 UTC
Why does Call.invoke() use ns1 namespace? -> problem with .NET service
HI!
I'd like to call a .NET service dynamically, with Call.invoke(). But the arguments are always NULL at the .NET side. If I generate a Java proxy, then it works. I figured, .NET has (again) a namespace problem, because this is the difference between the two calls. But why does Axis use this ns1 namespace at all? Is there a workaround for this?
This is what Axis 1.0 sends, when using Call.invoke():
<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:adresseActive soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="http://tempuri.org/">
<arg0>Test</arg0>
</ns1:adresseActive>
</soapenv:Body>
</soapenv:Envelope>
And this is being sent, when using the Proxy:
<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>
<adresseActive xmlns="http://tempuri.org/">
<arg0>Test</arg0>
</adresseActive>
</soapenv:Body>
</soapenv:Envelope>
This is my code for the dynamic call:
Service service;
Call call;
Object result;
service = new Service();
call = (Call)service.createCall();
call.setScopedProperty(Call.SEND_TYPE_ATTR, Boolean.FALSE);
call.setTargetEndpointAddress(new URL("http://localhost:81/dwsshop/Service1.asmx"));
call.setOperationName ("adresseActive");
call.setSOAPActionURI("http://tempuri.org/adresseActive");
call.setUseSOAPAction(true);
String[] myArgs = new String[1];
myArgs[0] = "Test";
result = call.invoke("http://tempuri.org/", "adresseActive", myArgs);
Anyone any idea?
Thanks!
Regards,
Thomas