Owen Thomas wrote: > > The concern is the repeated redeclaration of a namespace prefix > (xmlns:ns1="...") for every tag (<ns1:string>) that appears in the > output. >
Hi, I'm also having similar namespace issues. In my case, I'm using ServiceMix as a proxy presenting a search interface via a HTTP Consumer SU, then generating stubs from a variety of backend search web services and calling them through a HTTP Provider SU. The problem I'm having is that the output sent to the backend search web services through the provider is incompatible due to the addition of the namespace prefixes. For example, this is a working SOAP message that causes the seach service to return results: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Foo"> <soapenv:Header/> <soapenv:Body> <urn:searchSessionless> <String_1>test</String_1> <arrayOfString_2><value>Dylan</value></arrayOfString_2> <arrayOfString_3><value>Title</value></arrayOfString_3> <arrayOfString_4><value>~</value></arrayOfString_4> <arrayOfString_5><value>MediaUri</value></arrayOfString_5> <int_6>1</int_6> <int_7>5</int_7> </urn:searchSessionless> </soapenv:Body> </soapenv:Envelope> The SOAP message sent by the ServiceMix provider is: <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:Foo"> <soapenv:Header/> <soapenv:Body> <searchSessionless xmlns="urn:Foo"> <String_1 xmlns="">test</String_1> <ns2:arrayOfString_2 xmlns:ns2="urn:Foo"><value>dylan</value></ns2:arrayOfString_2> <ns2:arrayOfString_3 xmlns:ns2="urn:Foo"><value>Title</value></ns2:arrayOfString_3> <ns2:arrayOfString_4 xmlns:ns2="urn:Foo"><value>~</value></ns2:arrayOfString_4> <ns2:arrayOfString_5 xmlns:ns2="urn:Foo"><value>MediaUri</value></ns2:arrayOfString_5> <int_6 xmlns="">1</int_6> <int_7 xmlns="">5</int_7> </searchSessionless> </soapenv:Body> </soapenv:Envelope> The response given by the backend search service I'm calling is: <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns0="urn:Foo"> <env:Body> <env:Fault> <faultcode>env:Client</faultcode> <faultstring>JAXRPCTIE01: caught exception while handling request: unexpected element name: expected=arrayOfString_2, actual={urn:Foo}arrayOfString_2</faultstring> </env:Fault> </env:Body> </env:Envelope> I've contacted the people that wrote the service, and they say it's an issue with the tools I'm using. Is there a difference of interpretation between ServiceMix/XFire's idea of what the WSDL is defining and what the Sun tools understands it to mean? The WSDL for the service I'm trying to call is: <?xml version="1.0" encoding="UTF-8"?> <definitions xmlns:tns="urn:Foo" xmlns:ns2="urn:Foo/arrays/java/lang" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" name="ANON" targetNamespace="urn:Foo" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <schema xmlns="http://www.w3.org/2001/XMLSchema" xmlns:tns="urn:Foo/arrays/java/lang" xmlns:soap11-enc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" elementFormDefault="unqualified" attributeFormDefault="unqualified" targetNamespace="urn:Foo/arrays/java/lang"> <complexType name="StringArrayArray"> <sequence> <element name="value" type="tns:StringArray" minOccurs="0" maxOccurs="unbounded" /> </sequence> </complexType> <complexType name="StringArray"> <sequence> <element name="value" type="string" nillable="true" minOccurs="0" maxOccurs="unbounded" /> </sequence> </complexType> <xsd:complexType name="valueArray"> <xsd:sequence> <xsd:element name="value" type="xsd:string" minOccurs="1" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </schema> </types> <message name="ANON_IF_searchSessionless"> <part name="String_1" type="xsd:string" /> <part name="arrayOfString_2" type="ns2:StringArray" /> <part name="arrayOfString_3" type="ns2:StringArray" /> <part name="arrayOfString_4" type="ns2:StringArray" /> <part name="arrayOfString_5" type="ns2:StringArray" /> <part name="int_6" type="xsd:int" /> <part name="int_7" type="xsd:int" /> </message> <message name="ANON_IF_searchSessionlessResponse"> <part name="result" type="ns2:StringArrayArray" /> </message> <portType name="ANON_IF"> <operation name="searchSessionless" parameterOrder="String_1 arrayOfString_2 arrayOfString_3 arrayOfString_4 arrayOfString_5 int_6 int_7"> <input message="tns:ANON_IF_searchSessionless" /> <output message="tns:ANON_IF_searchSessionlessResponse" /> </operation> </portType> <binding name="ANON_IFBinding" type="tns:ANON_IF"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc" /> <operation name="searchSessionless"> <soap:operation soapAction="" /> <input> <soap:body use="literal" namespace="urn:Foo" /> </input> <output> <soap:body use="literal" namespace="urn:Foo" /> </output> </operation> </binding> <service name="ANON"> <port name="ANON_IFPort" binding="tns:ANON_IFBinding"> <soap:address location="http://anon:7080/ANON/ANON" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" /> </port> </service> </definitions> Does anyone have any idea why the SOAP messages are getting the prefixes added to the types? -- View this message in context: http://www.nabble.com/Apparent-namespace-problems.-tf3701288s12049.html#a10409118 Sent from the ServiceMix - User mailing list archive at Nabble.com.
