On Tue, May 18, 2010 at 3:21 AM, gnanda <[email protected]>wrote:
> > Besides to the 3 questions that I posted in my last message. I have another > one that is related to mep. > I discovered that map attached to cxf-bc depends on the definition of > wsdl > operation (one way or two ways). I cannot override it to in-only pattern. > That mean I cannot use pipeline here. Because it anly receives in-only > Is that correct? > Hi, No, you can't override the MEP for cxf bc endpoint, it's strictly decided by wsdl. Freeman > > Please suggest > > > gnanda wrote: > > > > Hi Freeman, > > In a hurry, I think I did not complete my thought properly in my last > > post.Sorry about that. > > I have three questions that I like to get suggestion from you > > 1)If I follow eip pattern do I need to use servicemix-bean as a > trnsformer > > or is there any better way for this? > > basically the flow is as below > > cxf-bc->servicemix bean->camel > > > > If I do not want to instantiate servicemix client inside servicemix-bean > > to call camel component then the flow would be as below > > <eip:pipeline service="test:mycxfbc" endpoint="endpoint"> > > <eip:transformer> > > <eip:exchange-target service="test:mypojo-bean" /> > > </eip:transformer> > > <eip:target> > > <eip:exchange-target service="test:mycamel" /> > > </eip:target> > > </eip:pipeline> > > > > 2) I looked into the below URL regarding pojo clss deployed as osgi > bundle > > > https://cwiki.apache.org/confluence/display/SMX4/Creating+an+OSGi+bundle+for+deploying+JBI+endpoints > > > > If I am not wrong, if I deploy the pojo calss as OSGi as explained above > > URL then I still need to use messagexchangelistner class and servicemix > > client to receive message from source and send message to the target. Is > > that correct? > > 3)Is there in document available that I can go thru to understand the > > benefit of osgi type of deployement over su-sa deployement? > > Thanks a lot for your time and help > > > > > > > > gnanda wrote: > >> > >> No that service assmbly is a generic bundle and will be used for every > >> message and every service provided by every product that we are going to > >> support. It does some dynamic routing, business entity lookup etc. I do > >> not want to put service specific validation or service specific > >> processing in this bundle > >> the bundle that receive incoming http message would need to have a unit > >> that will do service/product specific validation/processing > >> Looks like I need to use either servicemix-bean (with servicemix client) > >> or eip (with servicemix-bean as a transformer). If I follow eip pattern > >> do I need to use servicemix-bean as a trnsformer or is there any other > >> way around it? > >> Another related question is, I am moving to OSGI kind of deployement > >> instead of t service assembly type of deployement as I saw some > >> recommendation using OSGI deployement (though not found good comparisone > >> detail, reference to any document explaining pros/cons of both the way > >> would be very helpful) > >> If I use OSGI bundle for defining my bean pojo class then I guess I do > >> not need to extend MessageExchangeListener class. Do I? I think it wuld > >> be a simple pojo class, but how would it receive incoming message > >> exchnage from NMR? Is there any link that i can read to define my > >> servicemix-bean and deploy inside a osgi bundle?</b> > >> I looked into the below URL, but still got properely , how would I > >> receive exchange inside pojo and how would i call target service unit > >> from the pojo class. For my scenario I could replace filler unit poller > >> with cxf-bc that will call servicemix-bean here, > >> > >> > >> > >> Freeman Fang wrote: > >>> > >>> > >>> On 2010-5-14, at 上午3:41, gnanda wrote: > >>> > >>>> > >>>> 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? > >>>> > >>> Then how about not use servicemix-bean(pojo)->camel router, use > >>> bean(which can do anything you want to for incoming message) in camel > >>> router directly? > >>> You can just put bean befpre recipientlist, you may need take a look > >>> at [1] to get details how to use bean inside camel router > >>> [1]http://camel.apache.org/bean.html > >>> > >>> Freeman > >>>> > >>>> > >>>> > >>>> > >>>> 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. > >>>> > >>> > >>> > >>> -- > >>> 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-tp28489180p28587613.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > >
