On Friday 16 January 2009 9:01:49 am אלחנן מעיין wrote: > Yea, but get GetAgentDetails is not refed, only the response is.
Right, but the rules for unwrapping apply to the whole operation. If either the request OR the response cannot be unwrapped, then the whole operation is not unwrapped. Dan > -----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 -- Daniel Kulp [email protected] http://dankulp.com/blog
