WS-Addressing serialization interop error
gllambi Jan 23, 2010 4:27 PMHi!! I'm doing some interoperability tests with .NET 3.5 using WS-AtomicTransaction and have some problems with a serialization interpretation of WS-Addressing's Endpoint Reference. In particular, with it's metadata tag.
Here is a SOAP message built by JBossTransactions to register a participant in a transaction. It uses JBossWS to build the soap mesage. In particular, to serialize the endpointReference (RegistrationService). As you can see, it has a metadata tag that's empty. Well, .NET's implementation of WS-AT doesn't understand the message if it has a metadata tag empty!! It can understand it if it doesn't appear or if it has some content.
<env:Envelope xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'> <env:Header> <wscoor:CoordinationContext env:mustUnderstand='1' xmlns:wscoor='http://docs.oasis-open.org/ws-tx/wscoor/2006/06'> <wscoor:CoordinationContext xmlns:ns3='http://www.w3.org/2005/08/addressing'> <wscoor:Identifier>urn:-3f570b7e:d61:4ad386e0:73</wscoor:Identifier> <wscoor:CoordinationType>http://docs.oasis-open.org/ws-tx/wsat/2006/06 </wscoor:CoordinationType> <wscoor:RegistrationService> <ns3:Address>http://vmxp.localdomain:8080/ws-c11/RegistrationService</ns3:Address> <ns3:ReferenceParameters> <wsarj:InstanceIdentifier xmlns:wsarj='http://schemas.arjuna.com/ws/2005/10/wsarj'>-3f570b7e:d61:4ad386e0:73</wsarj:InstanceIdentifier> </ns3:ReferenceParameters> <ns3:Metadata /> </wscoor:RegistrationService> </wscoor:CoordinationContext> </wscoor:CoordinationContext> </env:Header> <env:Body> <ns1:depositar xmlns:ns1="http://services.lins.fing.edu.uy/"> <idCuenta>1</idCuenta> <monto>5000.0</monto> </ns1:depositar> </env:Body>
Ok! This is not a JBossWS interoperability problem. Is a .NET's problem, as the WS-Addressing XML Schema says this scenario may happen. But, as I can't change .NET's implementation and I got to have this working, I want to change JBossWS implementation to remove the metadata tag if it has no content. It still be a correct WS-Addressing message. So, the question where you can help me is: which class (and method) of JBossWS I have to change in order to remove the metadata tag?
It's very important that somebody could tell me this, in order to achieve interoperability with .NET 3.5 using WS-AtomicTransaction. I would appreciate it a lot!!!
Thanks in advance
Guzman
PD: Here's the link to JBossTransactions forum where I discuss the problem with Adinn http://community.jboss.org/thread/145652. It would be great to find a tidy and quick solution as this one.