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.
