Yea, but get GetAgentDetails is not refed, only the response is.
-----Original Message-----
From: Daniel Kulp [mailto:[email protected]]
Sent: Thursday, January 15, 2009 11:19 PM
To: [email protected]
Cc: Benson Margulies; אלחנן מעיין
Subject: Re: cxf's dynamic proxies ?
On Tuesday 13 January 2009 8:00:55 am Benson Margulies wrote:
> 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.
The issue is the response type:
<s:element name="GetAgentDetailsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" ref="s1:AgentWSResponse" />
</s:sequence>
</s:complexType>
</s:element>
To unwrap, the element must NOT be a "ref". If you change that to:
<s:element minOccurs="0" maxOccurs="1"
type="s1:AgentWSResponse" name="AgentWSResponse"/>
it may unwrap it.
Dan
>
> 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=1241
> > 2202
> >
> >
> >
> > 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.AgentWSRes
> >pons e" 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.AgentWSRes
> >pons
> >e" />
> > <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.AgentWSRes
> >pons
> >e ">
> > <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_P
> >rtSo ap"> <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_P
> >rtSo
> >ap"
> >
> >type="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetai
> >ls_P rtSoap"> <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_AgentD
> >etai ls_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_P
> >rtSo
> >ap12"
> >
> >type="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetai
> >ls_P rtSoap"> <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_AgentD
> >etai ls_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_P
> >rt">
> >
> > <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_P
> >rtSo
> >ap"
> >
> >binding="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDe
> >tail
> >s_PrtSoap"> <soap:address location="
> >
> >http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_
> >Agen tDetails_4405_AgentDetails_Prt.asmx" />
> > </wsdl:port>
> > <wsdl:port
> >
> >name="Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_P
> >rtSo
> >ap12"
> >
> >binding="tns:Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDe
> >tail s_PrtSoap12"> <soap12:address location="
> >
> >http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_
> >Agen tDetails_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_
> >Agen tDetails_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_
> >Agen tDetails_4405_AgentDetails_Prt.asmx?WSDL
> >
> > >> ");
> > >>
> > >> > QName q=new
> > >> > QName("http://Phoenix.co.il/UnderWrite
> > >>
> > >>
> > >>","Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_P
> > >>rt")
> > >>;
> > >>
> > >> > final Service service= Service.create(url, q);
> > >> > QName port=new
> > >> > QName("http://Phoenix.co.il/UnderWrite
> > >>
> > >>
> > >>","Phoenix_ESB_UnderWrite_Biztalk_AgentDetails_4405_AgentDetails_P
> > >>rt")
> > >>;
> > >>
> > >> >
> > >> > service.addPort(port,"http://schemas.xmlsoap.org/soap/
> >
> > ",
> >
> > >> > "
> >
> >
> >http://btst3/UnderWrite.Biztalk.Proxy/Phoenix_ESB_UnderWrite_Biztalk_
> >Agen
> >tDetails_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
> >").n
> >ewInstance();
> >
> > >> > 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.AgentWSRes
> >pons
> >e
> >
> > >> "
> > >>
> > >> >>>>>>> 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.AgentWSRes
> >pons
> >e
> >
> > >> "
> > >>
> > >> >>>>>>> />
> > >> >>>>>>> <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.AgentWSRes
> >pons
> >e
> >
> > >> ">
> > >>
> > >> >>>>>>> <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
--
Daniel Kulp
[email protected]
http://dankulp.com/blog
No virus found in this incoming message.
Checked by AVG.
Version: 7.5.552 / Virus Database: 270.10.8/1896 - Release Date: 15/01/2009
19:10
No virus found in this outgoing message.
Checked by AVG.
Version: 7.5.552 / Virus Database: 270.10.8/1896 - Release Date: 15/01/2009
19:10