Thanks Alick for your answer,

I'm examinating this solution. I didn't thought I'd have to extend Axis core
component(s) to resolve my issue. Do you or anyone know if that issue could
be done by configurating Axis server-config.wsdd? I'm certainly not against
some development but i'm a bit worried about the compatibility issues that
could arise by using custom Handler. In expectation of a futur migration
from Axis to Axis2 of the project, is the handler component assume backward
compatibility?

Thanks

2010/4/20 Alick Buckley <[email protected]>

>  Hi Kayser,
>
>
>
> You could try and register your own MessageHandler class and modify the
> SOAP XML response.
>
>
>
> Your custom message handle might need to extend the
> org.apache.axis.handlers.BasicHandler class.
>
>
>
> Use the message handler classe to add the xmlns:xsi namespace to
> synchronisationPersonneResponse element.
>
>
>
> I use custom MessageHandler classes for SOAP Agent clients to add SOAP
> headers to the SOAP request.
>
>
>
> I have not used it for a SOAP Server, I did a quick google, the following
> might help.
>
>
>
> www.mail-archive.com/[email protected]/msg12904.html
>
>
>
>
>
>
>
> *From:* aaa aaa [mailto:[email protected]]
> *Sent:* Tuesday, 20 April 2010 2:11 AM
> *To:* [email protected]; [email protected]
> *Subject:* Trouble moving technical namespaces declaration from
> soapenv:envelope to business part of soap messages.
>
>
>
> Hello,
>
> I'm working on integration of a webservice, running under Axis1 v1.4. It is
> actually working quite fine, handling SOAP requests and responding valide
> SOAP response.
>
> I still do have trouble with a SOAP client based on Biztalk. This client
> extract Business information in SOAP message and try to validate it against
> the WSDL of the WS.
> The problem is that, in my SOAP response, some attributes refer to the
> technical namespace "*xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance
> *"*, *which is declared in the technical part of the message, in
> soapenv:Envelope. When the business content is extracted from the technical
> message, the message isn't validate against WSDL because he just don't know
> the "xsi" namespace that content refer to.
>
> Is there a way by changing server-config.wsdd or deploy.wsdd to associate
> the xsi namespace to a new declaration in body part? I don't even know if
> that request make sense or if I should consider things another way?!
>
> Here is a typical message SOAP returned by the webservice and which show
> the problem:
>
> <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>
>       <synchronisationPersonneResponse xmlns="
> http://app.domain.fr/service/impl <http://acd.areva.fr/service/impl>">
>          <ns1:synchronisationPersonneReturn xmlns:ns1="
> http://app.domain.fr/service/dto <http://acd.areva.fr/service/dto>">
>             <ns1:recruteDate/>
>             ...
>             <ns1:postOfficeBox *xsi:nil="true"*/>
>             <ns1:telephoneNumber *xsi:nil="true"*/>
>             <ns1:titleLink>MISS</ns1:titleLink>
>             <ns1:uid *xsi:nil="true*"/>
>          </ns1:synchronisationPersonneReturn>
>       </synchronisationPersonneResponse>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> In blue is the technical part of the SOAP message and in black the business
> part.
>
> I would need something like this, for instance:
>
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
>
> xmlns:xsd="http://www.w3.org/2001/XMLSchema";>
>    <soapenv:Body>
>       <synchronisationPersonneResponse xmlns="
> http://app.domain.fr/service/impl <http://acd.areva.fr/service/impl>" *
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"*>
>          <ns1:synchronisationPersonneReturn xmlns:ns1="
> http://app.domain.fr/service/dto <http://acd.areva.fr/service/dto>">
>             <ns1:recruteDate/>
>             ...
>             <ns1:postOfficeBox *xsi:nil="true"*/>
>             <ns1:telephoneNumber *xsi:nil="true"*/>
>             <ns1:titleLink>MISS</ns1:titleLink>
>             <ns1:uid *xsi:nil="true*"/>
>          </ns1:synchronisationPersonneReturn>
>       </synchronisationPersonneResponse>
>    </soapenv:Body>
> </soapenv:Envelope>
>
> Lot of thanks by advance.
>
> Greetings,
>
> Kayser
>

Reply via email to