You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by Clóvis Wichoski <cw...@gmail.com> on 2010/07/06 20:46:18 UTC

how to create WS to support unknown type with AXIS2+JiBX

Hi,

i have an old web application, and i write my own way to process WS, i work
at raw xml data, but with this i created a well that isnt knowed by all
developers, then i wish to migrate to some framework with more devs and
pattern.

one of my WS, is a WS called "execute" that receives the "transaction"
object, with this, the user can send many types of objects inside this
transaction, but with actual interfaces and maps i cant find any way to map
xs:anyType to correct objects, appears that all maps and interfaces
generators require specific types.

to better understand i will post here some kind of the raw soap message:


*1) login*
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://mysample.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:execute>
         <transaction>
            <action>login</action>
            <name>login</name>
            <object>
                <User login="UserName" password="nonononono">
                     <myCompany><Person name="COMPANY" /></myCompany>
                </User>
             </object>
         </transaction>
      </ws:execute>
   </soapenv:Body>
</soapenv:Envelope>

*2) insert new Person*
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:ws="http://mysample.com/">
   <soapenv:Header/>
   <soapenv:Body>
      <ws:execute>
         <transaction>
            <action>insert</action>
            <name>newClient</name>
            <object>
                <Person oid="1" name="Client 1">
                    <myAddress>
                        <Address oid="2" address="Street 1">
                            <myCity>
                                <City oid="3" />
                            </myCity>
                        <Address>
                    </myAddress>
                </Person>
             </object>
         </transaction>
      </ws:execute>
   </soapenv:Body>
</soapenv:Envelope>

note that the point i need to solve is the object element that on Java is an
atribute that can receive java.lang.Object, today receive a Vector or any of
my Business Objects.

about Business Objects for Example myAddress is a Vector of Address, and
myCity is a reference to City, about City when only oid comes from client
side, that means that i must load and set that City from Persistence layer.

today i generate code for Every Class and create a kind of ClassResolver
that marshal and unmarshall this kind of XML to Transaction object and with
corresponding Business Objects, and integrated with persistence layer. Any
idea how i can map this scenario using AXIS2 and JiBX?

thanks for any insight.

best regards

Clovis