Well,

1) I don't know. I sort of suspect that if the current classloader has
classes with the sames names that CXF would generate, that it would try to
use them. I (mis)understood your message to imply that you wanted to deploy
no generated code on the client, so I coded the full reflective three-ring
circus.

2) Something about your wsdl makes CXF/JAX-WS think that those extra
wrappers are appropriate. Sadly, I'm not an expert in this area. Perhaps
someone else can explain it. This has nothing to do with the wire, only to
do with the Java classes. So it should not effect compatibility. There may
be some WSDL tweak that would change this. I'm copying Dan who often rescues
me from this subject matter.


On Tue, Jan 13, 2009 at 1:20 AM, <[email protected]> wrote:

>  I'm assuming I wil; be able to actually use the jibx generated classes
>  and not use reflection am I correct?
>
>
>
> Also one thing that deeply concerns is the use of GetAgentDetalils, in
> glue, I didn't have to use that object, it simply generated the
> agentWSRequest and I sent that one, to the proxy, I believe this is called
> unwrapped mode. If i use this here, I would have to use another object,t and
> thus break backwords compatilbilty.
>
>
>  ------------------------------
>
> *From:* Benson Margulies [mailto:[email protected]]
> *Sent:* Monday, January 12, 2009 11:14 PM
> *To:* אלחנן מעיין
> *Subject:* Re: cxf's dynamic proxies ?
>
>
>
> Here's the client example I'm about to check in.
>
>
> /**
>  * Licensed to the Apache Software Foundation (ASF) under one
>  * or more contributor license agreements. See the NOTICE file
>  * distributed with this work for additional information
>  * regarding copyright ownership. The ASF licenses this file
>  * to you under the Apache License, Version 2.0 (the
>  * "License"); you may not use this file except in compliance
>  * with the License. You may obtain a copy of the License at
>  *
>  * http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing,
>  * software distributed under the License is distributed on an
>  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
>  * KIND, either express or implied. See the License for the
>  * specific language governing permissions and limitations
>  * under the License.
>  */
>
> package demo.hw.client;
>
> import java.beans.BeanDescriptor;
> import java.beans.PropertyDescriptor;
> import java.io.File;
> import java.lang.reflect.Method;
> import java.net.URL;
> import java.util.List;
>
> import javax.xml.namespace.QName;
>
> import org.apache.cxf.endpoint.Client;
> import org.apache.cxf.endpoint.ClientImpl;
> import org.apache.cxf.endpoint.Endpoint;
> import org.apache.cxf.jaxws.endpoint.dynamic.JaxWsDynamicClientFactory;
> import org.apache.cxf.service.model.BindingInfo;
> import org.apache.cxf.service.model.BindingMessageInfo;
> import org.apache.cxf.service.model.BindingOperationInfo;
> import org.apache.cxf.service.model.MessagePartInfo;
> import org.apache.cxf.service.model.ServiceInfo;
>
> /**
>  *
>  */
> public final class ComplexClient {
>
>     private static final QName SERVICE_NAME
>         = new QName("http://complex.demo.cxf.apache.org/";,
> "ComplexImplService");
>
>     private ComplexClient() {
>     }
>
>     /**
>      * @param args
>      */
>     public static void main(String[] args) throws Exception {
>         if (args.length == 0) {
>             System.out.println("please specify wsdl");
>             System.exit(1);
>         }
>
>         URL wsdlURL;
>         File wsdlFile = new File(args[0]);
>         if (wsdlFile.exists()) {
>             wsdlURL = wsdlFile.toURL();
>         } else {
>             wsdlURL = new URL(args[0]);
>         }
>
>         System.out.println(wsdlURL);
>
>         JaxWsDynamicClientFactory factory =
> JaxWsDynamicClientFactory.newInstance();
>         Client client = factory.createClient(wsdlURL.toExternalForm(),
> SERVICE_NAME);
>         ClientImpl clientImpl = (ClientImpl) client;
>         Endpoint endpoint = clientImpl.getEndpoint();
>         ServiceInfo serviceInfo =
> endpoint.getService().getServiceInfos().get(0);
>         QName bindingName = new QName("http://complex.demo.cxf.apache.org/";,
> "ComplexImplServiceSoapBinding");
>         BindingInfo binding = serviceInfo.getBinding(bindingName);
>         //{
>         QName opName = new QName("http://Company.com/Application";,
> "GetAgentDetails");
>         BindingOperationInfo boi = binding.getOperation(opName);
>         BindingMessageInfo inputMessageInfo = boi.getInput();
>         List<MessagePartInfo> parts = inputMessageInfo.getMessageParts();
>         // only one part.
>         MessagePartInfo partInfo = parts.get(0);
>         Class<?> partClass = partInfo.getTypeClass();
>         System.out.println(partClass.getCanonicalName()); //
> GetAgentDetails
>         Object inputObject = partClass.newInstance();
>         // Unfortunately, the slot inside of the part object is also called
> 'part'.
>         // this is the descriptor for get/set part inside the
> GetAgentDetails class.
>         PropertyDescriptor partPropertyDescriptor = new
> PropertyDescriptor("part", partClass);
>         // This is the type of the class which really contains all the
> parameter information.
>         Class<?> partPropType = partPropertyDescriptor.getPropertyType();
> // AgentWSRequest
>         System.out.println(partPropType.getCanonicalName());
>         Object inputPartObject = partPropType.newInstance();
>         partPropertyDescriptor.getWriteMethod().invoke(inputObject,
> inputPartObject);
>         PropertyDescriptor numberPropertyDescriptor = new
> PropertyDescriptor("agentNumber", partPropType);
>         numberPropertyDescriptor.getWriteMethod().invoke(inputPartObject,
> new Integer(314159));
>
>         Object[] result = client.invoke(opName, inputObject);
>         Class<?> resultClass = result[0].getClass();
>         System.out.println(resultClass.getCanonicalName()); //
> GetAgentDetailsResponse
>         PropertyDescriptor resultDescriptor = new
> PropertyDescriptor("agentWSResponse", resultClass);
>         Object wsResponse =
> resultDescriptor.getReadMethod().invoke(result[0]);
>         Class<?> wsResponseClass = wsResponse.getClass();
>         System.out.println(wsResponseClass.getCanonicalName());
>         PropertyDescriptor agentNameDescriptor = new
> PropertyDescriptor("agentName", wsResponseClass);
>         String agentName =
> (String)agentNameDescriptor.getReadMethod().invoke(wsResponse);
>         System.out.println("Agent name: " + agentName);
>
>     }
>
> }
>
>  On Mon, Jan 12, 2009 at 11:08 AM, <[email protected]> wrote:
>
> https://issues.apache.org/jira/secure/ManageAttachments.jspa?id=12412202
>
>
>
> done
>
>
>  ------------------------------
>
> *From:* Benson Margulies [mailto:[email protected]]
> *Sent:* Monday, January 12, 2009 5:38 PM
> *To:* אלחנן מעיין
>
>
> *Subject**:* Re: cxf's dynamic proxies ?
>
>
>
> It gives Apache permission to include it in the project.
>
> 2009/1/12 <[email protected]>
>
> What does it mean?
>
>
>  ------------------------------
>
> *From:* Benson Margulies [mailto:[email protected]]
> *Sent:* Monday, January 12, 2009 5:24 PM
> *To:* אלחנן מעיין
>
>
> *Subject**:* Re: cxf's dynamic proxies ?
>
>
>
> When you attach a file to a JIRA, you either say 'yes we may incorporate
> it' or 'no'.
>
> 2009/1/12 <[email protected]>
>
> What is license to apache selection? ( I never opened a bug In jira
> before).
>
>
>
>
>  ------------------------------
>
> *From:* Benson Margulies [mailto:[email protected]]
> *Sent:* Monday, January 12, 2009 4:59 PM
> *To:* אלחנן מעיין
> *Subject:* Re: cxf's dynamic proxies ?
>
>
>
> Can you open a JIRA and attach it with the 'license to Apache' selection?
> Then I could directly turn it into a sample ;-)
>
> On Mon, Jan 12, 2009 at 9:42 AM, <[email protected]> wrote:
>
> sure, i allready did that, but here it is again:
>
> <?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>
>
>  <wsdl:portType
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap">
>    <wsdl:operation name="GetAgentDetails">
>      <wsdl:input message="tns:GetAgentDetailsSoapIn" />
>      <wsdl:output message="tns:GetAgentDetailsSoapOut" />
>    </wsdl:operation>
>  </wsdl:portType>
>  <wsdl:binding
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap"
> type="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap">
>    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; />
>    <wsdl:operation name="GetAgentDetails">
>      <soap:operation soapAction="
> http://Phoenix.co.il/UnderWrite/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt/GetAgentDetails";
> style="document" />
>      <wsdl:input>
>        <soap:body use="literal" />
>      </wsdl:input>
>      <wsdl:output>
>        <soap:body use="literal" />
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>  <wsdl:binding
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap12"
> type="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap">
>    <soap12:binding transport="http://schemas.xmlsoap.org/soap/http"; />
>    <wsdl:operation name="GetAgentDetails">
>      <soap12:operation soapAction="
> http://Phoenix.co.il/UnderWrite/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt/GetAgentDetails";
> style="document" />
>      <wsdl:input>
>        <soap12:body use="literal" />
>      </wsdl:input>
>      <wsdl:output>
>        <soap12:body use="literal" />
>      </wsdl:output>
>    </wsdl:operation>
>  </wsdl:binding>
>  <wsdl:service
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt">
>
>    <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:port
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap"
> binding="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap">
>      <soap:address location="
> http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt.asmx";
> />
>    </wsdl:port>
>    <wsdl:port
> name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap12"
> binding="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_PrtSoap12">
>      <soap12:address location="
> http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt.asmx";
> />
>    </wsdl:port>
>  </wsdl:service>
> </wsdl:definitions>
>
>
> Benson Margulies-4 wrote:
> >
> > Hey, can you share your wsdl, or one of the same complexity?
> >
> > On Mon, Jan 12, 2009 at 9:03 AM, elhanan <[email protected]> wrote:
> >
> >>
> >> allready tried that, lookign for blogs articles, couldn't find much.
> >>
> >> just remember, i only have my own java beans with attributes alone (no
> >> getters and setters and are serliezble.
> >> i only a wsdl and the operationname (in this case GetAgentDetails) i
> >> don't
> >> have namespace
> >>
> >> the client code i'm planing should have something like this:
> >>
> >> Client c= new Client(wsdl);
> >> Object[] ret=c.invoke(opName,new Object[]{request});
> >>
> >> this is what what's happening to day from our client side using glue.
> >>
> >> you could at the same time add it to the documentation :)
> >>
> >>
> >>
> >>
> >> elhanan wrote:
> >> >
> >> > ok, here's the thing
> >> >
> >> > i tried wsdl2java, can't use that becouse it always requiries i will
> >> have
> >> > a generated client classs
> >> >
> >> > tried dispatch method like so (with te wsdl i enclosed earlier):
> >> >
> >> >               String
> >> > wsdl="
> >>
> http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt.asmx?WSDL
> >> ";
> >> >               GetAgentDetails parameters=new GetAgentDetails();
> >> >               final AgentWSRequest agentWSRequest = new
> >> AgentWSRequest();
> >> >               agentWSRequest.setAgentNumber(8888);
> >> >               parameters.setPart(agentWSRequest);
> >> >
> >> >               URL url =new
> >> > URL("
> >>
> http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt.asmx?WSDL
> >> ");
> >> >               QName q=new
> >> > QName("http://Phoenix.co.il/UnderWrite
> >> ","Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt");
> >> >               final Service service= Service.create(url, q);
> >> >               QName port=new
> >> > QName("http://Phoenix.co.il/UnderWrite
> >> ","Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt");
> >> >               service.addPort(port,"http://schemas.xmlsoap.org/soap/
> ",
> >> > "
> >>
> http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_Prt.asmx
> >> ");
> >> >
> >> >               JAXBContext ctx =
> >> JAXBContext.newInstance(ObjectFactory.class);
> >> >               final Dispatch createDispatch =
> service.createDispatch(q,
> >> ctx,
> >> > Service.Mode.MESSAGE);
> >> >
> >> >               final Object invoke = createDispatch.invoke(parameters);
> >> >               System.out.println(invoke);
> >> >
> >> > but i got: Error setting the source for SOAPPart: null
> >> >
> >> > i also tried using
> >> >
> >> >
> >> >               DynamicClientFactory newInstance =
> >> DynamicClientFactory.newInstance();
> >> >               final ClassLoader contextClassLoader =
> >> > Thread.currentThread().getContextClassLoader();
> >> >
> >> >               final Client createClient =
> >> > newInstance.createClient(wsdl,contextClassLoader);
> >> >               Object o =
> >> >
> >>
> contextClassLoader.loadClass("il.co.phoenix.underwrite.AgentWSRequest").newInstance();
> >> >               createClient.invoke("GetAgentDetails", agentWSRequest);
> >> >
> >> > but aside form the fact that it doesn't find the classes, i would like
> >> to
> >> > to actually generate the classes in desing time but use the dynamic
> >> client
> >> > with them, but the package names are different.
> >> >
> >> > also i don't know how to use the JaxWsClientFactoryBean there is no
> >> > documentation on it.
> >> >
> >> > Benson Margulies-4 wrote:
> >> >>
> >> >> The answer to your last question is yes. As for the rest, look at the
> >> >> sample for the dynamic client, a picture is worth 1000 words.
> >> >>
> >> >> On Sun, Jan 11, 2009 at 2:39 PM, elhanan <[email protected]> wrote:
> >> >>>
> >> >>> but if i won't see any source, how will i use it? it's a chicken and
> >> egg
> >> >>> kinda thing ?
> >> >>>
> >> >>> my types are not very complex, usually one bean, containing simple
> >> >>> types, or
> >> >>> other array complex types.
> >> >>>
> >> >>> i tried using xmlbeans with axis2, but i created beans what tied to
> >> >>> xmlbeans
> >> >>> lib.
> >> >>>
> >> >>> wil wsd2java create java beans with just annotations? then i would
> be
> >> >>> able
> >> >>> to switch back to glue anytime, (that's the main thought here)
> >> >>>
> >> >>> Benson Margulies-4 wrote:
> >> >>>>
> >> >>>> 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.
> >> >>>>>
> >> >>>>>
> >> >>>>
> >> >>>>
> >> >>>
> >> >>> --
> >> >>> View this message in context:
> >> >>>
> >>
> http://www.nabble.com/cxf%27s-dynamic-proxies---tp21400946p21403216.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---tp21400946p21414996.html
> >> Sent from the cxf-user mailing list archive at Nabble.com.
> >>
> >>
> >
> >
>
> Quoted from:
> http://www.nabble.com/cxf%27s-dynamic-proxies---tp21400946p21415597.html
>
>
>
>
>
>
>
>
>
> No virus found in this incoming message.
> Checked by AVG.
> Version: 7.5.552 / Virus Database: 270.10.6/1887 - Release Date: 11/01/2009
> 17:57
>
> No virus found in this outgoing message.
> Checked by AVG.
> Version: 7.5.552 / Virus Database: 270.10.6/1887 - Release Date: 11/01/2009
> 17:57
>

Reply via email to