0 Replies Latest reply on Jul 20, 2007 2:02 PM by gryffin

    jbossws 1.2.1 xml typing problem

    gryffin

      I've got a web service that accepts a complex type as a parameter. It works with a JBossWS client, but I need it to work for an Axis client whcih is failing. We both used the same WSDL for our clients, and the service was built consuming the same WSDL.

      Specifically, JBoss fails to marshall the DeviceData and AssetData objects. I can't find anything wrong with the format or schema implementation Axis uses. It looks fine, but JBoss throws an error when trying to access the children of the SelectionValues portion.

      DeviceData dd = associationValues.getDeviceData()
      works
      dd.getDeviceList()
      fails

      Here's the SOAP envelope that Axis generates:
      <?xml version="1.0" encoding="UTF-8"?>
      
      <soapenv:Envelope
       xmnls:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
       xmnls:xsd="http://www.w3.org/2001/XMLSchema"
       xmnls:xsi="http://www.w3.org/2001/XMLSchema-instance"
       >
       <soapenv:Body>
       <assetAssociationSet
       xmlns="http://www.example.com/NLS/soap"
       >
       <Selector
       xmlns=""
       >
       <ns1:AssetId
       xmlns:ns1="http://www.example.com/NLS/ns/soapTypes"
       >
       3M0000I</ns1:AssetId>
       <ns2:OwnerAppId
       xmlns:ns2="http://www.example.com/NLS/ns/soapTypes"
       >
       TOOLING</ns2:OwnerAppId>
       </Selector>
       <AssociationValues
       CreateDeviceAssociations="any"
       DeleteOtherDeviceAssociations="false"
       xmlns=""
       >
       <ns3:DeviceData
       xmlns:ns3="http://www.example.com/NLS/ns/Types"
       >
       <ns3:Device>
       <ns3:AeroScoutTag
       MacId="494949494949"
       />
       </ns3:Device>
       </ns3:DeviceData>
       <ns4:AssetData
       AssetId="3M0000I"
       OwnerAppId="TOOLING"
       Version="0.1.0"
       xmlns:ns4="http://www.example.com/NLS/ns/Types"
       >
       <ns4:AssetDisplayName>17P7W3261-501</ns4:AssetDisplayName>
       <ns4:AssetCategory>/TOOLING</ns4:AssetCategory>
       <ns4:AssetDescription>3M0000I</ns4:AssetDescription>
       <ns4:AssetSuspended>false</ns4:AssetSuspended>
       </ns4:AssetData>
       </AssociationValues>
       </assetAssociationSet>
       </soapenv:Body>
      </soapenv:Envelope>
      


      Here's the JBossWS client call:

      <env:Envelope
       xmlns:env='http://schemas.xmlsoap.org/soap/envelope/'
       >
       <env:Header></env:Header>
       <env:Body>
       <ns1:assetAssociationSet
       xmlns:ns1='http://www.example.com/NLS/soap'
       >
       <Selector
       xmlns:ns2="http://www.example.com/NLS/ns/soapTypes"
       >
       <ns2:AssetId>devAssetId</ns2:AssetId>
       <ns2:OwnerAppId>devOwnerAppId</ns2:OwnerAppId>
       </Selector>
       <AssociationValues
       xmlns:ns2="http://www.example.com/NLS/ns/soapTypes"
       xmlns:ns3="http://www.example.com/NLS/ns/Types"
       DeleteOtherDeviceAssociations="true"
       CreateDeviceAssociations="ANY"
       >
       <ns2:DeviceData
       Version="0.3.0"
       >
       <ns3:Device>
       <ns3:AeroScoutTag MacId="000CCC1111f0">
       <ns3:BatteryStatus>low</ns3:BatteryStatus>
       </ns3:AeroScoutTag>
       </ns3:Device>
       </ns2:DeviceData>
       <ns2:AssetData
       Version="0.3.0"
       OwnerAppId="devOwnerAppId"
       AssetId="devAssetId"
       >
       <ns3:AssetDisplayName>Stunt Asset</ns3:AssetDisplayName>
       <ns3:AssetCategory>/devTop1/dev1-b/dev1-b-2/dev1-b-2-a</ns3:AssetCategory>
       <ns3:AssetDescription> dev asset</ns3:AssetDescription>
       <ns3:AssetSuspended>true</ns3:AssetSuspended>
       </ns2:AssetData>
       </AssociationValues>
       </ns1:assetAssociationSet>
       </env:Body>
      </env:Envelope>