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 >
