You are viewing a plain text version of this content. The canonical link for it is here.
Posted to wsif-user@ws.apache.org by Simon Solomon <b0...@FDS.com> on 2003/03/14 17:21:12 UTC
WSIFOperation_ApacheAxis
Hi,
I am using WSIF to invoke the attached WSDL. (Using the ApacheAxis
Provider)
However, the generated soap message (attached below) contains an invalid
namespace tag for the
"greetData" part name as "<ns1:greetData href="#id0"/>" where it should
have looked like
"<greetData href="#id0"/>".
When I add the following lines of code to the WSIFOperation_ApacheAxis.java
setCallParameterNames(Call call) function, the correct soap message is
generated.
Does anyone know what I am missing or what's going on?
*This only happens in a document style service.
*This problem does not happen when I use the ApacheSoap Provider.
Thanks!
Added Code ->>
if(WSIFAXISConstants.STYLE_RPC.equals(operationStyle))
name = new QName("", partName);
else
name = new QName(inputNamespace, partName);
QName type = getPartType(p);
call.addParameter(name, type, ParameterMode.IN);
Invalid Saop ->>
<?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:sayHello soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1
="http://sde.fds.com/schema/mpsitest">
<ns1:greetData href="#id0"/>
</ns1:sayHello>
<multiRef id="id0" soapenc:root="0" soapenv:encodingStyle
="http://schemas.xmlsoap.org/soap/encoding/" xsi:type="ns2:Data"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns2
="http://sde.fds.com/schema/mpsitest">
<name xsi:type="xsd:string">Simon Solomon</name>
<id xsi:type="xsd:string">1234</id>
</multiRef>
</soapenv:Body>
</soapenv:Envelope>
WSDL Used ->>
<?xml version="1.0" encoding="utf-8"?>
<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap
="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s
="http://www.w3.org/2001/XMLSchema" xmlns:s0
="http://schema.sde.fds.com/mpsitest/complex2" xmlns:soapenc
="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm
="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime
="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace
="http://schema.sde.fds.com/mpsitest/complex2" xmlns
="http://schemas.xmlsoap.org/wsdl/">
<types>
<s:schema elementFormDefault="qualified" targetNamespace
="http://schema.sde.fds.com/mpsitest/complex2">
<s:element name="sayHello">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="greetData" type
="s0:ArrayOfSomeData" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfSomeData">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="SomeData"
nillable="true" type="s0:SomeData" />
</s:sequence>
</s:complexType>
<s:complexType name="SomeData">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="name" type
="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="id" type="s:string"
/>
</s:sequence>
</s:complexType>
<s:element name="sayHelloResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="sayHelloResult"
type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</types>
<message name="sayHelloSoapIn">
<part name="parameters" element="s0:sayHello" />
</message>
<message name="sayHelloSoapOut">
<part name="parameters" element="s0:sayHelloResponse" />
</message>
<portType name="Complex2Soap">
<operation name="sayHello">
<input message="s0:sayHelloSoapIn" />
<output message="s0:sayHelloSoapOut" />
</operation>
</portType>
<binding name="Complex2Soap" type="s0:Complex2Soap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style
="document" />
<operation name="sayHello">
<soap:operation soapAction
="http://schema.sde.fds.com/mpsitest/complex2/sayHello" style="document" />
<input>
<soap:body use="literal" />
</input>
<output>
<soap:body use="literal" />
</output>
</operation>
</binding>
<service name="Complex2">
<documentation>MPSI Testing WebService</documentation>
<port name="Complex2Soap" binding="s0:Complex2Soap">
<soap:address location
="http://fs000xs3070514/mpsi_test/complex2.asmx" />
</port>
</service>
</definitions>
Simon Solomon
ssolomon@fds.com