Thanks Freeman. I am trying to follow the below route cxfBC consumer with wsdl->servicemix-bean (pojo) I am not made cxfbc worked yet. having classnotfoundexception as below java.lang.ClassNotFoundException: org.apache.servicemix.cxfbc.CxfBcConsumer in classloader org.apache.xbean.spring.context.filesystemxmlapplicationcont...@a79f01 I could deploy wsdl-first example which means I have something wrong in my pom or xbean.
I have some questions related to the design of servicemix bean calling camel router. Just as a note servicemix bean class supposed to do some validation task on the incoming messages and then call a camel router deployed in another service assembly. Camelrouter does dynamic routing to the target services using recipient list pattern 1)I have to call my camel router from servicemix bean. I could pass traget servicename and target endpointname from xbean.xml file then inside the class file I could use servicemixclient to call the targetservice.I have done this way before for other part of my project but I do not like using servicemixclient from the java class. Is there a better way to call camel router from servicemix bean without using servicemixclient inside the bean? Would eip pipeline a better way to do this? If I use eip do I need to refer my bean class as a transformer? My taregt here the camel router deployed inside another SA. I would not prefer eip pipeline to call camel router. Is there a better solution to this design? Freeman Fang wrote: > > Hi, > Yeah, some thing like > servicemix-http or servicemix-cxf-bc(with wsdl)->servicemix-bean(pojo). > You can take a look at [1] how pojo in servicemix-bean works. > > [1]http://servicemix.apache.org/servicemix-bean.html > > Freeman > On 2010-5-13, at 上午5:04, gnanda wrote: > >> >> Thanks Freeman for the reply. Are you suggesting something like below >> servicemix http (with wsdl ) -> servicemix-bean(pojo) >> The pojo does not need to have have all these operations defined in >> WSDL? >> Do you have any document available that I can refer to or any similar >> example that I an follow? >> >> I am following the above design to see if that works. >> Please let me know if my inderstanding is incorrect >> >> >> Freeman Fang wrote: >>> >>> Hi, >>> >>> Ok, I understand your requirement more clearly now. >>> In your case you can't use cxf se endpoint, as cxf se endpoint bind >>> to >>> wsdl model strictly, which means it will parse the incoming message, >>> and from the message payload and wsdl model it will determine the >>> operationName, so you must have extact same interface used for cxf se >>> pojo and frontend cxfbc(or http) consumer wsdl. >>> >>> But I think you can use a pojo in servicemix-bean, which can process >>> all incoming messages and don't do the operation match from payload, >>> in that bean you can do what ever you want and then dispatch to next >>> stop(camel router in your case). >>> >>> Hope this helps. >>> >>> Freeman >>> On 2010-5-11, at 下午10:29, gnanda wrote: >>> >>>> >>>> Hi Freeman, thanks for the reply. In my scenario, it is actually >>>> other way >>>> around. >>>> >>>> In wsdl I need to have add,delete,update operations but in POJO, I >>>> need to >>>> have only one operation >>>> >>>> To give you little background, here is my route architecture >>>> http endpoint ->pojo service->camel router- queue->camel router- >>>>> external >>>> webservice >>>> >>>> My external webservice which is in .NET has WSDL. I need to clone >>>> that and >>>> publish it on my front http endpoint. This WSDL has 5/6 operations. >>>> In a >>>> ususal scenario I have to create 5/6 operations (kind of donothing >>>> operaions) to satisfy WSDL publishing. Is there a way I could just >>>> have one >>>> method in my pojo attached to all these operations in WSDLs. >>>> >>>> In real scenario I do have more than 5 WSDLS with each with 5/6 >>>> operations. >>>> For each WSDL I have a http endpoint but I do not want the >>>> corresponding >>>> POJO service to have all these operations defined. These operations >>>> are >>>> actually being perform by external web services. >>>> >>>> >>>> Could I use cxf proxy? I do have camel router in my route which has >>>> to be >>>> there in between cxf proxy and external web service, not sure if it >>>> is >>>> possible doing that >>>> >>>> >>>> >>>> Freeman Fang wrote: >>>>> >>>>> Hi, >>>>> >>>>> Use cxf bc endpoint, you must specify a wsdl for it, which clearly >>>>> define the interface. >>>>> >>>>> For your case, I think you can use a wsdl with one operation >>>>> provideRequest, and then in your cxf-se endpoint(or POJO) you can >>>>> do >>>>> anything you want(add, delete, update) for the incoming message. >>>>> >>>>> Freeman >>>>> On 2010-5-11, at 上午12:00, gnanda wrote: >>>>> >>>>>> >>>>>> Anyone please let me know if have any suggestion how to publish a >>>>>> wsdl from a >>>>>> http (or cxf bc?) endpoint where the associated cxf-se would just >>>>>> have a >>>>>> generic method accpeting messages for any operation defined in the >>>>>> wsdl >>>>>> >>>>>> For example: My wsdl has operations as addRequest(String xml), >>>>>> deleteRequest(String xml), updateRequest(String xml). This wsdl >>>>>> will >>>>>> be >>>>>> published on the http (cxf-bc?) endpoint >>>>>> >>>>>> But the service(cxf-se? or POJO class?) associated with my http >>>>>> (or >>>>>> cxf-bc) >>>>>> will have only one method provideRequest(String xml) accepting >>>>>> message for >>>>>> addRequest(),deleteRequest() and updateRequest() >>>>>> >>>>>> How would I proceed doing this? >>>>>> >>>>>> >>>>>> gnanda wrote: >>>>>>> >>>>>>> Hi All, I have an interesting design issue related to my http >>>>>>> component >>>>>>> and wsdl publishing >>>>>>> currently I have below scenario >>>>>>> >>>>>>> smx:http consumer(no wsdl, accep any well formed soap message) -> >>>>>>> camel >>>>>>> router-> external web service >>>>>>> >>>>>>> I need to publish wsdl with my http component but would need to >>>>>>> accept any >>>>>>> well formed soap message then route to a pojo class to do few >>>>>>> validation >>>>>>> on my own then route to a camel router then to external web >>>>>>> service >>>>>>> >>>>>>> here is the new flow >>>>>>> smx:http consumer(could be cxf bc? , publishing wsdl) -> pojo >>>>>>> class >>>>>>> with >>>>>>> doListen()->camel router->external web service >>>>>>> Important point to be noted here are >>>>>>> ** the pojo class will not have any operation defined for the >>>>>>> operations >>>>>>> declared in the wsdl >>>>>>> ** doListen() method in the pojo class will receive any incoming >>>>>>> soap >>>>>>> message for all operations declared in the wsdl and do a few >>>>>>> validation >>>>>>> and send to camel router. >>>>>>> >>>>>>> How would I proceed doing this? Any suggestion will be very >>>>>>> helpful >>>>>>> >>>>>> >>>>>> -- >>>>>> View this message in context: >>>>>> http://old.nabble.com/publishing-wsdl-with-no-autovalidation-and-with-no-webservice-associated-with-it-tp28489180p28512285.html >>>>>> Sent from the ServiceMix - User mailing list archive at >>>>>> Nabble.com. >>>>>> >>>>> >>>>> >>>>> -- >>>>> Freeman Fang >>>>> ------------------------ >>>>> Open Source SOA: http://fusesource.com >>>>> >>>>> >>>>> >>>> >>>> -- >>>> View this message in context: >>>> http://old.nabble.com/publishing-wsdl-with-no-autovalidation-and-with-no-webservice-associated-with-it-tp28489180p28524890.html >>>> Sent from the ServiceMix - User mailing list archive at Nabble.com. >>>> >>> >>> >>> -- >>> Freeman Fang >>> ------------------------ >>> Open Source SOA: http://fusesource.com >>> >>> >>> >> >> -- >> View this message in context: >> http://old.nabble.com/publishing-wsdl-with-no-autovalidation-and-with-no-webservice-associated-with-it-tp28489180p28541101.html >> Sent from the ServiceMix - User mailing list archive at Nabble.com. >> > > > -- > Freeman Fang > ------------------------ > Open Source SOA: http://fusesource.com > > > -- View this message in context: http://old.nabble.com/publishing-wsdl-with-no-autovalidation-and-with-no-webservice-associated-with-it-tp28489180p28551740.html Sent from the ServiceMix - User mailing list archive at Nabble.com.
