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