Hi all,


I'm newbie on ServiceMix and I would like to be able to use this ESB and particuraly the service-jms JBI component.
To have got the hang of ServiceMix and the service-jms, I try to rewrite the bpel-bpe example delivered in the ServiceMix package, by using the service-jms component intead of the JMS lightweight component.

Unfortunately, I'm not able to run successfully this modified example and I got this following error
INFO  - AutoDeploymentService          - Directory: deploy: Finished installation of archive:  bpe-demo-sa.zip
WARN  - DefaultBroker                  - ServiceName (LoanBrokerService) specified for routing, but can't find it registered
ERROR - MultiplexingConsumerProcessor  - Error while handling jms message
javax.jbi.messaging.MessagingException: Could not find route for exchange: MessageExchange[
  id: ID:joaninh-46760-1159175936954-3:0
  status: Active
  role: provider
  service: LoanBrokerService
  operation: getLoanQuote
  in: <?xml version="1.0" encoding="UTF-8"?><getLoanQuoteRequest xmlns="urn:logicblaze:soa:loanbroker">
  <ssn>102-24532-53254</ssn>
  <amount>40736.07354934523</amount>
  <duration>0</duration>
</getLoanQuoteRequest>
] for service: LoanBrokerService and interface: null

when I run the JMS client.

I certainly do an gross error in the descriptor of the jms service unit I added, by I can't find it !
Any help from an expert in ServiceMix will be appreciate.

Thanks in advance.
Hélène JOANIN.

Here are the changes I did in the bpel-bpe example of apache-servicemix-3.0-M2-incubating version.

1) I retrieve the JMS component in the servicemix.xml descriptor of the lw-su.

2) I create a new service unit jms-su with the following xbean deployment:
<?xml version="1.0"?>
<beans xmlns:jms="http://servicemix.apache.org/jms/1.0"
       xmlns:amq="http://activemq.org/config/1.0">
       xmlns:lb="urn:logicblaze:soa:loanbroker"
       xmlns:demo="urn:servicemix:demo">

    <jms:endpoint service="demo:JmsProvider"
              endpoint="JmsProvider"
              role="provider"
              defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
              destinationStyle="queue"
              jmsProviderDestinationName="demo.org.servicemix.output"
              connectionFactory="#connectionFactory"
     />

    <jms:endpoint service="demo:JmsConsumer"
              endpoint="jms"
              targetService="lb:LoanBrokerService"
              targetEndpoint="loanbroker"
              defaultOperation="lb:getLoanQuote"
              role="consumer"
              defaultMep="http://www.w3.org/2004/08/wsdl/in-out"
              destinationStyle="queue"
              jmsProviderDestinationName="demo.org.servicemix.source"
              connectionFactory="#connectionFactory"
     />

  <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
    <property name="brokerURL" value="tcp://localhost:61616" />
  </bean>

</beans>

3) I update the jbi.xml of service-assembly by adding this new jms-su service unit.

4) I update the servicemix.xml global descriptor with:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:sm="http://servicemix.apache.org/config/1.0"
       xmlns:amq="http://activemq.org/config/1.0">

    <sm:container id="jbi"
                rootDir="./data/smx"
                installationDirPath="./install"
                deploymentDirPath="./deploy"
                flowName="seda"
                depends-on="broker"
                >

        <sm:activationSpecs>
        </sm:activationSpecs>
    </sm:container>

    <bean id="connectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory">
        <property name="brokerURL" value="tcp://localhost:61616" />
    </bean>

    <bean id="broker" class="org.apache.activemq.xbean.BrokerFactoryBean">
        <property name="config" value="classpath:activemq.xml"/>
    </bean>

    <bean id="jencks" class="org.jencks.JCAContainer"
        singleton="true">
        <property name="bootstrapContext">
            <bean
                class="org.jencks.factory.BootstrapContextFactoryBean">
                <property name="threadPoolSize" value="25" />
            </bean>
        </property>
        <!-- the JCA Resource Adapter -->
        <property name="resourceAdapter">
            <bean id="activeMQResourceAdapter"
                class="org.apache.activemq.ra.ActiveMQResourceAdapter" singleton="true">
                <property name="serverUrl"
                    value="tcp://localhost:61616" />
            </bean>
        </property>
    </bean>

</beans>

Reply via email to