3 Replies Latest reply on Mar 8, 2010 9:58 AM by gllambi

    WS-Addressing serialization interop error

    gllambi

      Hi!! 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.