Custom XMLStreamWriters might also help, though changing namespaces at that
level may be a bit tricky

cheers, Sergey

On Thu, Jan 27, 2011 at 6:43 PM, Glen Mazza <[email protected]> wrote:

> I think if you use the Dispatch class with raw XML you can send the service
> whatever you want:
> http://www.jroller.com/gmazza/entry/calling_rpc_encoded_web_services
>
>
> On 27.01.2011 13:20, Taylor Jones (tayjones) wrote:
>
>> Hi everyone, I have a bit of a weird question here. It may be trivial to
>> a more experienced user though, I'm kind of new to CXF and webservices
>> in general.
>>
>> I'm working with CXF to generate Java classes from WSDLs, with which I
>> interface with a commercial product's exposed SOAP services. The problem
>> is, the product's XML implementation is sort of funky and I kind of need
>> CXF to break a few rules to marshal the XML for the SOAP service.
>> Basically, the form of the soap request expected by the product is this:
>>
>> <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/";
>>        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>>        <soap:Header>
>>                <Auth xmlns="namespace1">
>>
>> <SessionID>5000156__171120a:10a241ff830:-7f711143139816999</SessionID>
>>                </Auth>
>>        </soap:Header>
>>        <soap:Body>
>>                <Read xmlns="namespace1">
>>                        <DataBus
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>
>> xsi:noNamespaceSchemaLocation="../xsd/read.xsd" xmlns="">
>>                                <Header version="12.0.0.5028" />
>>                                <Query>
>>                                        <Filter name="subject"
>> criteria="EQUALS">some filter text</Filter>
>>                                </Query>
>>                        </DataBus>
>>                </Read>
>>        </soap:Body>
>> </soap:Envelope>
>>
>> I've written a WSDL such that everything CXF generates is fine, verified
>> this with Wireshark, except for the namespace of the<DataBus>  tag. I
>> don't think it's possible to write a WSDL or schema in such a way that
>> CXF generates a DataBus class in a blank namespace (maybe it is, I'd
>> love to be proven wrong there). So, I tried writing an interceptor to do
>> this manually on outgoing requests, but after the<DataBus>  tag is
>> modified to have a blank namespace the child tags are suddenly generated
>> with xmlns="namespace1" attribute. It doesn't seem that there is a place
>> in the interceptor chain to prevent this change from happening, so I'm
>> pretty much out of ideas. The commercial product I'm using will not
>> accept these tags unless the namespaces are "correct"; that is to say,
>> what it expects to receive, not what is standard. Would anyone here be
>> able to help or point me in a good direction to accomplish this?
>>
>> Taylor Jones
>>
>
>
> --
> Glen Mazza
> Software Engineer, Talend (http://www.talend.com)
> blog: http://www.jroller.com/gmazza
>
>
>

Reply via email to