The problematic routing slip is:

from(SERVICE_IN).setHeader("routingSlipHeader", SERVICEOUT1+ ","+ SERVICEOUT2).routingSlip("routingSlipHeader", ",");

deploying this gives me a Unable to find suitable deployer for Service Unit 'CamelJSRSU'. This is my main problem. SERVICEOUT1 etc are JSR 181 endpoints

Ramon Buckland wrote:
Hi Slyvester,

You need a camel-context.xml

my-camel-su/
|-- pom.xml
|-- src
   `-- main
       `-- resources
           `-- camel-context.xml


Make sure that your pom.xml either includes servicemix-camel as a
dependency, (and it's a JBI component for tooling) or that you set the
property

<properties>
    <componentName>servicemix-camel</componentName>
</properties>

so that, when the SA is generated with Maven (and it has a dependency on the
my-camel-su), it knows to deploy the my-camel-su to the servicemix-camel
service engine. (written into the "sa.zip:/META-INF/jbi.xml"

Also, ensure that the servicemix-camel-2008.01-installer.zip is in the
/hotdeploy (and the servicemix-shared...zip as well).

regards
Ramon



On Sat, Dec 6, 2008 at 17:41, Sylvester <[EMAIL PROTECTED]> wrote:

Hi,
I have managed to deploy a simple camel component in service mix. I am now
having problems with the routing slip pattern.

Structure:

A JMS BC receives the JMS message. This is then forwarded to the camel
endpoint which routs it to various JSR181 endpoints specified in the routing
slip header. Now, I have no problem hitting the first endpoint. The problem
starts when the output of the first endpoint is not compatible with the
input needed by the second endpoint.

So  *Question#1* - How do I control the output of the first endpoint?

Also, in my search to solve question#1- I did this to my fist JSR181
endpoint:

WebService(serviceName = "ExampleJSRService123", targetNamespace = "
http://example.com/exampleServiceJSR123";)
public class ExampleService {

  @WebMethod
  public void sayHello(DefaultMessage defaultMessage) {
      System.out.println("ExampleJSRService123 says hello!  "+
defaultMessage);
      System.out.println(defaultMessage.getBody());
             //        return "<sayHello><name>hai</name></sayHello>";
  }

Maven builds this just fine, but servicemix says the following when I
deploy it:


<component-task-result xmlns="
http://java.sun.com/xml/ns/jbi/management-message";
<component-name>servicemix-jsr181</component-name>
      <component-task-result-details>
              <task-result-details>
                      <task-id>deploy</task-id>
                      <task-result>FAILED</task-result>
                      <message-type>ERROR</message-type>
                      <task-status-msg>
<msg-loc-info>
<loc-token/>
<loc-message>Unable to find suitable deployer for Service Unit
'CamelJSRSU'</loc
-message>
</msg-loc-info>
</task-status-msg>
              </task-result-details>
      </component-task-result-details>
</component-task-result>
</jbi-task-result>
</jbi-task>

I read on previous posts that the camel component needs a camel-context and
not an xbean so I tried the following combinations in the SU:

 1. Only xbean
 2. Xbean and camel context
 3. only camel context initializing the endpoints like:

!-- START SNIPPET: camel -->
<beans xmlns="http://www.springframework.org/schema/beans";
  xmlns:jsr181="http://servicemix.apache.org/jsr181/1.0";
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
  xsi:schemaLocation="
     http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
     http://activemq.apache.org/camel/schema/spring
http://activemq.apache.org/camel/schema/spring/camel-spring.xsd
  ">

  <!--
      from("seda:a").to("seda:b");
  -->
  <camelContext id="camel"
      xmlns="http://activemq.apache.org/camel/schema/spring";>
      <package>org.CamelJSRSU</package>


  </camelContext>
  <jsr181:endpoint pojoClass="org.CamelJSRSU.ExampleService" />
  <jsr181:endpoint pojoClass="org.CamelJSRSU.ExampleService2" />
</beans>

My hunch is that a camel-context is not needed here, but thought I should
try it out before I post it here.

*Question#2:  *How do I correctly deploy this component (xbean?
camel-context? anything else?)

Thanks.
Sylvester









Reply via email to