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