I subclassed the Jsr181Endpoint class and defined a targetService,
targetEndpoint property, then I used the same method I wrote before, it
works fine for me.


Eduardo Burgos


On 2/21/07, vinodhc <[EMAIL PROTECTED]> wrote:


Hi,
So If I understand correctly you are saying I can use eip patterns to
route
even between two jsr-181 components? Because there is no clear
documentation
on this.
The reason for the doubt is because the servicemix-jsr181 configuration
itself does not have any means of defining a target service and even the
documentation for servicemix-jsr181 says to use java code or bpel.

Regards,
Vinod.


cmalonzo wrote:
>
> Hey,
>
> There are some EIP patterns that you can use to achieve your
> objectives..you can use one with another depending on your needs. You
can
> check them out and see if any of these patterns will work for you.
>
>
http://incubator.apache.org/servicemix/servicemix-eip.html#servicemix-eip-Pipeline
>
> HTH,
> Cristina
>
>
> vinodhc wrote:
>>
>> Eduardo,
>>
>> Thanks. This was mentioned in the samples. I will try this out. But my
>> main intention was to route to other components using configuration
>> rather than code.
>>
>> It is not the case of just this one service. I have other components
that
>> execute business logic that I want to expose as a web service on the
bus.
>>
>> So in that case, I would code in each service to route to the next
>> component whereas I wanted to manage this through configuration i.e.
>> using servicemix routing mechanism.
>>
>> I know there is bpel to route between web services but here are the
>> issues I have with bpel:
>> 1. I will have to create a wsdl for each of my business components
>> 2. How do I route from my bpel to other non-web service components?
>>
>> Can we not use pipeline or something to route between services?
>>
>> Or should I convert all of my business components as POJOs that
implement
>> the JBI methods to be able to route to them?
>>
>> Vinod.
>>
>>
>> eburgos wrote:
>>>
>>> Hi,
>>>
>>> I also had this problem, I hope there will be soon a better way to do
>>> this
>>> but i will explain how I am doing it currently.
>>>
>>> routing from jsr181 to the rest of servicemix:
>>>
>>> I deployed a pojo jsr181 endpoint.
>>>
>>> <jsr181:endpoint ... >
>>> <jsr181:pojo>
>>>   <bean class="com.test.TestWebService">
>>>          <property name="myProperty">
>>>               <ref bean="myBean" />
>>>          </property>
>>>   </bean>
>>> </jsr181:pojo>
>>> </jsr181:endpoint>
>>>
>>>
>>> fortunately, the jsr181 component code injects your JBI component
>>> context if
>>> you have a ComponentContext property in your pojo declared, something
>>> like
>>> this:
>>>
>>>
>>> private ComponentContext context;
>>>
>>> @WebMethod(exclude = true)
>>>  public ComponentContext getContext() {
>>>   return context;
>>>  }
>>>
>>>  @WebMethod(exclude = true)
>>>  public void setContext(ComponentContext context) {
>>>   this.context = context;
>>>  }
>>>
>>>
>>> Im not sure if you need the property accessor methods but I have them.
>>> Now, if you know where is your message going to forward to (i.e. if
you
>>> know
>>> where is located your business component ) then you can proceed and
use
>>> the
>>> context to deliver the message. Something like this:
>>>
>>>
>>> protected void forward(NormalizedMessage msg) {
>>>   EndpointDeliveryChannel channel;
>>>
>>>   try {
>>>    channel = (EndpointDeliveryChannel) context.getDeliveryChannel();
>>>
>>>     ServiceEndpoint se = context.getEndpoint( new QName("foo:test"),
>>> "myEndpoint");
>>>
>>>     InOnly exch = channel.createExchangeFactory(se)
>>>       .createInOnlyExchange();
>>>
>>>
>>>     exch.setInMessage(msg);
>>>
>>>     context.getDeliveryChannel().send(exch);
>>>    }
>>>
>>>   } catch (MessagingException e) {
>>>
>>>    e.printStackTrace();
>>>   } catch (NamingException e) {
>>>    // TODO Auto-generated catch block
>>>    e.printStackTrace();
>>>   }
>>>
>>>  }
>>>
>>>
>>>
>>> with that method you can manually create your NormalizedMessage and
send
>>> it
>>> to the deliverychannel to the service you specify. Note that this
>>> approach
>>> doesnt involve any security at all (i.e. you might have chained your
>>> jsr181
>>> endpoint with a servicemix-http endpoint. If you have done this and
you
>>> need
>>> any info such as username/password, you will find that with
>>> JBIContext.getMessageExchange()   )
>>>
>>> reply if you have any issues or if this didn't work at all :)
>>>
>>>
>>>
>>>
>>>
>>> Eduardo Burgos
>>>
>>>
>>> On 2/19/07, Vinod Chhabria <[EMAIL PROTECTED]> wrote:
>>>>
>>>> Hi,
>>>>
>>>> I have a need to create a flow by routing through various components
of
>>>> servicemix. Please guide me.
>>>>
>>>> Here are my requirements:
>>>>
>>>> 1.      A web service is exposed for clients.
>>>>
>>>> 2.      This web service is the starting point of the flow.
>>>>
>>>> 3.      From this web service I need to call another business
component
>>>> / service that does some validation
>>>>
>>>> 4.      Then another business component / service that executes some
>>>> business logic
>>>>
>>>> 5.      Then there is a router to be called that conditionally routes
>>>> to
>>>> different transformation components.
>>>>
>>>> 6.      After the transformation component a web service of an
external
>>>> application needs to be invoked.
>>>>
>>>> 7.      The response of this web service then needs to be transformed
>>>> and sent back as a response to the client that invoked our web
service
>>>> that was invoked.
>>>>
>>>>
>>>>
>>>> I need to understand how to configure this flow.
>>>>
>>>> 1.      Do I expose the business components as web services using
>>>> servicemix-jsr181?
>>>>
>>>> 2.      If yes, but from one servicemix-jsr181 component how do I
route
>>>> to another servicemix-jsr181 without calling it in the code?
>>>>
>>>> 3.      I know bpel is used for web services orchestration, but can I
>>>> use it to orchestrate part of my flow i.e. I use bpel only to
>>>> orchestrate the first 3 services and then I use some routing
component
>>>> to route to other transformation components further on?
>>>>
>>>>
>>>>
>>>> Regards,
>>>>
>>>> Vinod.
>>>>
>>>> <http://dataexchange.sterlingtesting.com/images/sigs/image001.gif>
>>>>
>>>> <http://dataexchange.sterlingtesting.com/images/sigs/image000.gif>
>>>>
>>>> Vinod H. Chhabria :: Senior Developer, Integration Services
>>>> Sterling Testing Systems :: 249 West 17th Street :: 6th Floor :: New
>>>> York :: NY :: 10011
>>>> 646-435-2208 (t) :: 646-435-2281 (f)
>>>> www.sterlingtesting.com <http://www.sterlingtesting.com>
>>>>
>>>>
>>>>
>>>>
>>>> This email (and any attachments) is intended only for the use of the
>>>> individual or entity named above and may contain information that is
>>>> privileged and confidential. If you are not the intended recipient,
or
>>>> have
>>>> unauthorized access, you are hereby notified that copying,
>>>> disseminating,
>>>> distributing or taking any action in reliance on this email is
strictly
>>>> prohibited<br />
>>>>
>>>> Opinions, conclusions and other information in this message that do
not
>>>> relate to the official business of our firm shall be understood as
>>>> neither
>>>> given nor endorsed by it.
>>>>
>>>
>>>
>>
>>
>
>

--
View this message in context:
http://www.nabble.com/servicemix-routing-question-tf3256020s12049.html#a9088283
Sent from the ServiceMix - User mailing list archive at Nabble.com.


Reply via email to