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-tp28489180p28584929.html
Sent from the ServiceMix - User mailing list archive at Nabble.com.