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

Reply via email to