You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cxf.apache.org by Nianhua Li <nl...@kaplan.com> on 2007/11/19 19:05:29 UTC
Missing input/output param namespace in SOAP
Dear list,
I am using the java-first approach with spring configuration on cxf 2.0.3
and tomcat 5.5. I specified namespace for all the input and output
parameters via @WebParam and @WebResult annotation. But the namespace was
somehow missing from the SOAP message.
Let's use the "java_first_spring_support" sample shipped with cxf 2.0.3 as
an example. If I add some ws annotations to the service interface
"HelloWorld.java":
==================================
@WebService(name="MyHelloWorldService",
targetNamespace="http://nstest.helloworld")
@SOAPBinding( parameterStyle=SOAPBinding.ParameterStyle.WRAPPED,
style=SOAPBinding.Style.DOCUMENT,
use= SOAPBinding.Use.LITERAL )
public interface HelloWorld {
@WebMethod
@WebResult(name="MyResult", targetNamespace="http://nstest.helloworld")
String sayHi(@WebParam(name="MyInput",
targetNamespace="http://nstest.helloworld") String text);
}
==================================
Deploy it to tomcat, generate a cxf client from WSDL, and invoke the
service.
=================================
The SOAP request:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body
><ns2:sayHi
xmlns:ns2="http://nstest.helloworld"><MyInput>ABC</MyInput></ns2:say
Hi></soap:Body></soap:Envelope>
The SOAP response:
<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body
><ns1:sayHiResponse xmlns:ns1="http://nstest.helloworld"><MyResult>Hello
ABC</My
Result></ns1:sayHiResponse></soap:Body></soap:Envelope>
===================================
Notice that both input and output parameter (MyInput and MyResult) have no
namesapce. How can I make the namespace available? Should I add
@RequestWrapper annotation?
The namespace is available in WSDL though. Here is the related part:
===================================
<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:ns1="http://nstest.helloworld"
xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MyHelloWorldService"
targetNamespace="http://nstest.helloworld">
<wsdl:types>
<xsd:schema xmlns="http://nstest.helloworld"
xmlns:tns="http://spring.demo/"
attributeFormDefault="unqualified"
elementFormDefault="unqualified"
targetNamespace="http://nstest.helloworld"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<import xmlns="http://www.w3.org/2001/XMLSchema"
namespace="http://spring.demo/"/>
<xsd:element name="sayHi" type="sayHi"/>
<xsd:complexType name="sayHi">
<xsd:sequence>
<xsd:element minOccurs="0" name="MyInput" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
<xsd:element name="sayHiResponse" type="sayHiResponse"/>
<xsd:complexType name="sayHiResponse">
<xsd:sequence>
<xsd:element minOccurs="0" name="MyResult" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
</wsdl:types>
<wsdl:message name="sayHi">
<wsdl:part element="ns1:sayHi" name="parameters">
</wsdl:part>
</wsdl:message>
<wsdl:message name="sayHiResponse">
<wsdl:part element="ns1:sayHiResponse" name="parameters">
</wsdl:part>
</wsdl:message>
...
</wsdl:definitions>
==================================
Could somebody help me out on this problem please? Many thanks in advance.
nianhua
--
View this message in context: http://www.nabble.com/Missing-input-output-param-namespace-in-SOAP-tf4838229.html#a13841672
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Missing input/output param namespace in SOAP
Posted by Nianhua Li <nl...@kaplan.com>.
Thanks for follow up with my question. I have created an issue:
https://issues.apache.org/jira/browse/CXF-1226
Any inputs will be highly appreciated!
nianhua
--
View this message in context: http://www.nabble.com/Missing-input-output-param-namespace-in-SOAP-tf4838229.html#a13870886
Sent from the cxf-user mailing list archive at Nabble.com.
Re: Missing input/output param namespace in SOAP
Posted by Jim Ma <em...@iona.com>.
Hi ,
This is an issue in CXF . Can you log it into
https://issues.apache.org/jira/browse/CXF with your
test case ?
Thanks
Jim
Nianhua Li wrote:
> Dear list,
>
> I am using the java-first approach with spring configuration on cxf 2.0.3
> and tomcat 5.5. I specified namespace for all the input and output
> parameters via @WebParam and @WebResult annotation. But the namespace was
> somehow missing from the SOAP message.
>
> Let's use the "java_first_spring_support" sample shipped with cxf 2.0.3 as
> an example. If I add some ws annotations to the service interface
> "HelloWorld.java":
> ==================================
> @WebService(name="MyHelloWorldService",
> targetNamespace="http://nstest.helloworld")
> @SOAPBinding( parameterStyle=SOAPBinding.ParameterStyle.WRAPPED,
> style=SOAPBinding.Style.DOCUMENT,
> use= SOAPBinding.Use.LITERAL )
> public interface HelloWorld {
> @WebMethod
> @WebResult(name="MyResult", targetNamespace="http://nstest.helloworld")
> String sayHi(@WebParam(name="MyInput",
> targetNamespace="http://nstest.helloworld") String text);
> }
> ==================================
>
> Deploy it to tomcat, generate a cxf client from WSDL, and invoke the
> service.
> =================================
> The SOAP request:
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body
>
>> <ns2:sayHi
>>
> xmlns:ns2="http://nstest.helloworld"><MyInput>ABC</MyInput></ns2:say
> Hi></soap:Body></soap:Envelope>
>
> The SOAP response:
> <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body
>
>> <ns1:sayHiResponse xmlns:ns1="http://nstest.helloworld"><MyResult>Hello
>>
> ABC</My
> Result></ns1:sayHiResponse></soap:Body></soap:Envelope>
> ===================================
> Notice that both input and output parameter (MyInput and MyResult) have no
> namesapce. How can I make the namespace available? Should I add
> @RequestWrapper annotation?
>
> The namespace is available in WSDL though. Here is the related part:
> ===================================
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:ns1="http://nstest.helloworld"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema" name="MyHelloWorldService"
> targetNamespace="http://nstest.helloworld">
> <wsdl:types>
> <xsd:schema xmlns="http://nstest.helloworld"
> xmlns:tns="http://spring.demo/"
> attributeFormDefault="unqualified"
> elementFormDefault="unqualified"
> targetNamespace="http://nstest.helloworld"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema">
> <import xmlns="http://www.w3.org/2001/XMLSchema"
> namespace="http://spring.demo/"/>
> <xsd:element name="sayHi" type="sayHi"/>
> <xsd:complexType name="sayHi">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="MyInput" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> <xsd:element name="sayHiResponse" type="sayHiResponse"/>
> <xsd:complexType name="sayHiResponse">
> <xsd:sequence>
> <xsd:element minOccurs="0" name="MyResult" type="xsd:string"/>
> </xsd:sequence>
> </xsd:complexType>
> </xsd:schema>
> </wsdl:types>
> <wsdl:message name="sayHi">
> <wsdl:part element="ns1:sayHi" name="parameters">
> </wsdl:part>
> </wsdl:message>
> <wsdl:message name="sayHiResponse">
> <wsdl:part element="ns1:sayHiResponse" name="parameters">
> </wsdl:part>
> </wsdl:message>
> ...
> </wsdl:definitions>
> ==================================
>
> Could somebody help me out on this problem please? Many thanks in advance.
>
> nianhua
>