The return message structure of the SOAP service
.png)
.png)
This XML file does not appear to have any style information associated with it. The document tree is shown below.
WSDL
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://herenit.com" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" targetNamespace="http://herenit.com">
<types>
<s:schema elementFormDefault="qualified" targetNamespace="http://herenit.com">
<s:element name="Sample">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" name="pInput" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SampleResponse">
<s:complexType>
<s:sequence>
<s:element name="ROOT" type="s0:ReqTitleList"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ReqTitleList">
<s:complexContent>
<s:extension base="s0:Ens_Request">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="TitleList" nillable="true" type="s:string"/>
</s:sequence>
</s:extension>
</s:complexContent>
</s:complexType>
<s:complexType name="Ens_Request">
<s:complexContent>
<s:extension base="s0:Ens_Messagebody"/>
</s:complexContent>
</s:complexType>
<s:complexType name="Ens_Messagebody"/>
<s:complexType name="ArrayOfTitleListItemString">
<s:sequence>
<s:element maxOccurs="unbounded" minOccurs="0" name="TitleListItem" nillable="true" type="s:string"/>
</s:sequence>
</s:complexType>
</s:schema>
</types>
<message name="SampleSoapIn">
<part name="parameters" element="s0:Sample"/>
</message>
<message name="SampleSoapOut">
<part name="parameters" element="s0:SampleResponse"/>
</message>
<portType name="NewService1Soap">
<operation name="Sample">
<input message="s0:SampleSoapIn"/>
<output message="s0:SampleSoapOut"/>
</operation>
</portType>
<binding name="NewService1Soap" type="s0:NewService1Soap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="Sample">
<soap:operation soapAction="http://herenit.com/HEREN.TEST.NewService1.Sample" style="document"/>
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="NewService1">
<port name="NewService1Soap" binding="s0:NewService1Soap">
<soap:address location="http://172.16.136.78:57772/heren/jcpt/HEREN.TEST.NewService1.cls"/>
</port>
</service>
</definitions>
The problem is shown in figure! thank you!
Discussion (4)0
Comments
To get rid of xmlns: attribute In your SOAPservice class you may try
Paramter NAMESPACE = "";methodname_"Response" is hardcoded in system class
I would warn for writing a customized version of it.
Hi.
You need to specify
Parameter ARGUMENTSTYLE = "message";
For example:
Class delme.SoapService Extends %SOAP.WebService [ Language = objectscript, ProcedureBlock ]
{
Parameter ARGUMENTSTYLE = "message";
Parameter SERVICENAME = "MyService";
Parameter NAMESPACE = "http://tempuri.org";
Method Test(x As %String) As %String(XMLNAME="Root") [ WebMethod ]
{
Return "Test"
}
}
Then response is following:
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:s="http://www.w3.org/2001/XMLSchema">
<SOAP-ENV:Body>
<Root xmlns="http://tempuri.org">Test</Root>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
Thank you very much!