CXF has a thing called the DynamicClient. At runtime, the
DynamicClientFactory will eat the WSDL and create a proxy client. You
never see any source. You can use 'invoke'-style methods to call it.
It gets clumsier and clumsier depending on how complex your types are.
You could give it a whirl and see what happens.

Dan might know, as an alternative, if xmlbeans has an xsd-to-pojo
generator that you could use to set up pojo-enough client objects.

Or, you might find that you don't object to the plague of snails
(@nnotations) that you get by using CXF's wsdl2java tool.


On Sun, Jan 11, 2009 at 1:58 PM, elhanan <[email protected]> wrote:
>
> what do you mean complex object in flight?
>
> and for commiting, well if i were to write such code, i doubt my company
> would allow me to commit it as open source, but i always wanted to join an
> os project development as a hobby, i was looking into spring and seam, but
> i didnt' get the time to actually learn them good enough to develop to.
>
>
> Benson Margulies-4 wrote:
>>
>> This depends on the complexity of your API.
>>
>> If you've got complex objects in flight, then you'd have to run
>> wsdl2java, and that will add JAXB and JAX-WS annotations. 'Not quite
>> pojos'.
>>
>> It would be nice if we could auto-generate classes that, when combined
>> with the the Simple front end and Aegis, would conform to a given
>> WSDL, but we've haven't got that code. If you'd like to write that
>> code ... well, I'd be very happy to mentor/advise/commit for you.
>>
>>
>>
>> On Sun, Jan 11, 2009 at 11:22 AM, elhanan <[email protected]> wrote:
>>>
>>> hi..
>>>
>>> we are considering on switching our current web service framework which
>>> is
>>> glue to something else
>>>
>>> glue worked by gettting a wsdl, and then generating simple pojo's which
>>> had
>>> no dependencies, and generating a mapping document based on wsdl's
>>> schemas.
>>> it had one interface which created a dynamic proxy at runtime, which
>>> recived
>>> an array of objects and return an object.
>>>
>>> we are interested in something which is as close as possible:
>>>
>>> given the following wsdl:
>>> <?xml version="1.0" encoding="utf-16"?>
>>> <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>>> xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/";
>>> xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
>>> xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
>>> xmlns:tns="http://Phoenix.co.il/UnderWrite";
>>> xmlns:s1="http://Phoenix.ESB.Hitum.Schemas.GreenSystemServices.Agent.AgentWSResponse";
>>> xmlns:s="http://www.w3.org/2001/XMLSchema";
>>> xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
>>> xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
>>> targetNamespace="http://Phoenix.co.il/UnderWrite";
>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
>>>  <wsdl:documentation
>>> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>BizTalk
>>> assembly "Phoenix.ESB.UnderWrite.Biztalk, Version=1.0.0.0,
>>> Culture=neutral,
>>> PublicKeyToken=3b97ca913d728b36" published web
>>> service.</wsdl:documentation>
>>>  <wsdl:types>
>>>    <s:schema elementFormDefault="qualified"
>>> targetNamespace="http://Phoenix.co.il/UnderWrite";>
>>>      <s:import
>>> namespace="http://Phoenix.ESB.Hitum.Schemas.GreenSystemServices.Agent.AgentWSResponse";
>>> />
>>>      <s:element name="GetAgentDetails">
>>>        <s:complexType>
>>>          <s:sequence>
>>>            <s:element minOccurs="0" maxOccurs="1" name="part"
>>> type="tns:AgentWSRequest" />
>>>          </s:sequence>
>>>        </s:complexType>
>>>      </s:element>
>>>      <s:complexType name="AgentWSRequest">
>>>        <s:sequence>
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AgentNumber" type="s:int" />
>>>        </s:sequence>
>>>      </s:complexType>
>>>      <s:element name="GetAgentDetailsResponse">
>>>        <s:complexType>
>>>          <s:sequence>
>>>            <s:element minOccurs="0" maxOccurs="1"
>>> ref="s1:AgentWSResponse"
>>> />
>>>          </s:sequence>
>>>        </s:complexType>
>>>      </s:element>
>>>    </s:schema>
>>>    <s:schema elementFormDefault="qualified"
>>> targetNamespace="http://Phoenix.ESB.Hitum.Schemas.GreenSystemServices.Agent.AgentWSResponse";>
>>>      <s:element name="AgentWSResponse" type="s1:AgentWSResponse" />
>>>      <s:complexType name="AgentWSResponse">
>>>        <s:sequence>
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="ResponseCode" type="s:short" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="ResponseDescription" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="AgentName" type="s:string" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="CancelledDate" type="s:date" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="Street" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="HouseNumber" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="City" type="s:string" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="ZipCode" type="s:int" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AreaCode" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="PhoneNumber" type="s:int" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AreaCode2" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="PhoneNumber2" type="s:int" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="InspectorNumber" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="SuperInspectorNumber" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="StaffNumber" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AgenceNumber" type="s:int" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="StaffName" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="EmployeeNumber" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="ProductionConfirmCode" type="s:string" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AddProductionLifePolicy" type="s:short" />
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="AddProductionHealthPolicy" type="s:short" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="AddLoginEmployee1" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="AddLoginEmployee2" type="s:string" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="Result" type="s1:AgentWSResponseResult" />
>>>        </s:sequence>
>>>      </s:complexType>
>>>      <s:complexType name="AgentWSResponseResult">
>>>        <s:sequence>
>>>          <s:element minOccurs="1" maxOccurs="1" form="unqualified"
>>> name="Code" type="s:int" />
>>>          <s:element minOccurs="0" maxOccurs="1" form="unqualified"
>>> name="Description" type="s:string" />
>>>        </s:sequence>
>>>      </s:complexType>
>>>    </s:schema>
>>>  </wsdl:types>
>>>  <wsdl:message name="GetAgentDetailsSoapIn">
>>>    <wsdl:part name="parameters" element="tns:GetAgentDetails" />
>>>  </wsdl:message>
>>>  <wsdl:message name="GetAgentDetailsSoapOut">
>>>    <wsdl:part name="parameters" element="tns:GetAgentDetailsResponse" />
>>>  </wsdl:message>
>>>
>>>
>>> we have attempted using axis2 with jibx, however the problems is in the
>>> top
>>> level elements GetAgentDetails and GetAgentDetailsResponse. glue did not
>>> generate these on their sub elements, (we would like to use same sub
>>> elements if possible) i'm guessing it created these elements on the fly.
>>>
>>> is CXF capable of doing this?
>>> --
>>> View this message in context:
>>> http://www.nabble.com/cxf%27s-dynamic-proxies---tp21400946p21400946.html
>>> Sent from the cxf-user mailing list archive at Nabble.com.
>>>
>>>
>>
>>
>
> --
> View this message in context: 
> http://www.nabble.com/cxf%27s-dynamic-proxies---tp21400946p21402626.html
> Sent from the cxf-user mailing list archive at Nabble.com.
>
>

Reply via email to