You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by Charles Souillard <Ch...@ext.bull.net> on 2006/02/09 17:12:12 UTC

Service Engine development

Hi all,

I have writen a Service Engine for my app and I have deployed it into SM.
I have deployed a SA composed of two SUs.
I can use the JMX console to verify my component is well installed and 
my two SU well deployed into my component.
I am now trying to call one of the two services I exposed in my SA but I 
get the following exception (see under)
I probably missed to inform the NMR of my services deployment.
Which code do I have to add ? where ?

I had a look into SM http and SM wsn but I didn't discover the problem.
Can you help me ?

I am using Sun JDK 1.5 and SM svn head of this morning.

Thanks a lot for your answers,
Charles

INFO - DeliveryChannelImpl.createExchangeFactory(162) | default 
destination serviceName for myComponent = {urn:echo:bpel:bsoap}EchoServiceBP
INFO - DeliveryChannelImpl.createExchangeFactory(172) | default 
destination operationName for myComponent = 
{http://xbean.org/schemas/spring/1.0}echo
INFO - DeliveryChannelImpl.createExchangeFactory(177) | default 
destination endpointName for myComponent = echoPT
WARN - DeliveryChannelImpl.createExchangeFactory(194) | Could not find 
destination endpoint for myComponent 
service({urn:echo:bpel:bsoap}EchoServiceBP) with endpointName echoPT
WARN - Broker.resolveAddress(337) | ServiceName 
({urn:echo:bpel:bsoap}EchoServiceBP) specified for routing, but can't 
find it registered
ERROR - JmsServiceComponent.onMessage(248) | Failed to process inbound 
JMS Message: ActiveMQTextMessage {commandId = 7, responseRequired = 
true, messageId = ID:frec445363-37477-1139500102721-0:0:1:1:1, 
originalDestination = null, originalTransactionId = null, producerId = 
ID:frec445363-37477-1139500102721-0:0:1:1, destination = 
topic://demo.org.servicemix.source, transactionId = null, expiration = 
0, timestamp = 1139500103080, arrival = 0, correlationId = null, replyTo 
= temp-topic://ID:frec445363-37477-1139500102721-0:0:1, persistent = 
true, type = null, priority = 4, groupID = null, groupSequence = 0, 
targetConsumerId = null, compressed = false, userID = null, content = 
null, marshalledProperties = null, dataStructure = null, 
redeliveryCounter = 0, text = <?xml version="1.0" 
encoding="UTF-8"?><echoString>coucouBoy</echoString>}
javax.jbi.messaging.MessagingException: Failed to resolve endpoint: 
org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an 
instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
        at 
org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:360)
        at 
org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:280)
        at 
org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:609)
        at 
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:362)
        at 
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:436)
        at 
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:413)
        at 
org.apache.servicemix.components.jms.JmsServiceComponent.onMessage(JmsServiceComponent.java:213)
        at 
org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:716)
        at 
org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:93)
        at 
org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:146)
        at 
org.apache.activemq.thread.SimpleTaskRunner.runTask(SimpleTaskRunner.java:110)
        at 
org.apache.activemq.thread.SimpleTaskRunner.access$100(SimpleTaskRunner.java:25)
        at 
org.apache.activemq.thread.SimpleTaskRunner$1.run(SimpleTaskRunner.java:43)
        at 
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643)
        at 
edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668)
        at java.lang.Thread.run(Thread.java:595)
Caused by: org.apache.servicemix.jbi.NoServiceAvailableException: Cannot 
find an instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
        at 
org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver.createServiceUnavailableException(ServiceAndEndpointNameResolver.java:75)
        at 
org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndpoint(EndpointResolverSupport.java:39)
        at 
org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:357)
        ... 15 more

Re: Service Engine development

Posted by Charles Souillard <Ch...@ext.bull.net>.
Rob,

you can find hereafter my SA descriptor :

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<jbi version="1" xsi:schemaLocation="http://java.sun.com/xml/ns/jbi
./jbi.xsd"
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/jbi">
  <service-assembly>
    <identification>
      <name>BPELSamplesSA</name>
      <description>BPEL samples Service Assembly</description>
    </identification>

    <service-unit>
      <identification>
        <name>echoSU</name>
        <description>Echo sample Service Unit</description>
      </identification>
      <target>
        <artifacts-zip>echoSU.jar</artifacts-zip>
        <component-name>Orchestra</component-name>
      </target>
    </service-unit>

    <service-unit>
      <identification>
        <name>helloworldSU</name>
        <description>Helloworld sample Service Unit</description>
      </identification>
      <target>
        <artifacts-zip>helloworldSU.jar</artifacts-zip>
        <component-name>Orchestra</component-name>
      </target>
    </service-unit>

  </service-assembly>
</jbi>




Charles

Rob Davies wrote:

> Hi Charles,
>
> could you post the deployment descriptor for your SA so we can check  
> the format ? Although the SU is deployed - it's not advertised it's  
> endpoint to the container.
> You either have to do this in the SU code itself - or in the  
> descriptor for the SA.
>
> cheers,
>
> Rob
>
> On 9 Feb 2006, at 16:12, Charles Souillard wrote:
>
>> Hi all,
>>
>> I have writen a Service Engine for my app and I have deployed it  
>> into SM.
>> I have deployed a SA composed of two SUs.
>> I can use the JMX console to verify my component is well installed  
>> and my two SU well deployed into my component.
>> I am now trying to call one of the two services I exposed in my SA  
>> but I get the following exception (see under)
>> I probably missed to inform the NMR of my services deployment.
>> Which code do I have to add ? where ?
>>
>> I had a look into SM http and SM wsn but I didn't discover the  problem.
>> Can you help me ?
>>
>> I am using Sun JDK 1.5 and SM svn head of this morning.
>>
>> Thanks a lot for your answers,
>> Charles
>>
>> INFO - DeliveryChannelImpl.createExchangeFactory(162) | default  
>> destination serviceName for myComponent = {urn:echo:bpel:bsoap} 
>> EchoServiceBP
>> INFO - DeliveryChannelImpl.createExchangeFactory(172) | default  
>> destination operationName for myComponent = {http://xbean.org/ 
>> schemas/spring/1.0}echo
>> INFO - DeliveryChannelImpl.createExchangeFactory(177) | default  
>> destination endpointName for myComponent = echoPT
>> WARN - DeliveryChannelImpl.createExchangeFactory(194) | Could not  
>> find destination endpoint for myComponent service 
>> ({urn:echo:bpel:bsoap}EchoServiceBP) with endpointName echoPT
>> WARN - Broker.resolveAddress(337) | ServiceName  
>> ({urn:echo:bpel:bsoap}EchoServiceBP) specified for routing, but  
>> can't find it registered
>> ERROR - JmsServiceComponent.onMessage(248) | Failed to process  
>> inbound JMS Message: ActiveMQTextMessage {commandId = 7,  
>> responseRequired = true, messageId =  
>> ID:frec445363-37477-1139500102721-0:0:1:1:1, originalDestination =  
>> null, originalTransactionId = null, producerId =  
>> ID:frec445363-37477-1139500102721-0:0:1:1, destination = topic:// 
>> demo.org.servicemix.source, transactionId = null, expiration = 0,  
>> timestamp = 1139500103080, arrival = 0, correlationId = null,  
>> replyTo = temp-topic://ID:frec445363-37477-1139500102721-0:0:1,  
>> persistent = true, type = null, priority = 4, groupID = null,  
>> groupSequence = 0, targetConsumerId = null, compressed = false,  
>> userID = null, content = null, marshalledProperties = null,  
>> dataStructure = null, redeliveryCounter = 0, text = <?xml  
>> version="1.0" encoding="UTF-8"?><echoString>coucouBoy</echoString>}
>> javax.jbi.messaging.MessagingException: Failed to resolve endpoint:  
>> org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find  
>> an instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
>>        at org.apache.servicemix.jbi.nmr.Broker.resolveAddress 
>> (Broker.java:360)
>>        at org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket 
>> (Broker.java:280)
>>        at  
>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange 
>> (JBIContainer.java:609)
>>        at  
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend 
>> (DeliveryChannelImpl.java:362)
>>        at  
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync 
>> (DeliveryChannelImpl.java:436)
>>        at  
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync 
>> (DeliveryChannelImpl.java:413)
>>        at  
>> org.apache.servicemix.components.jms.JmsServiceComponent.onMessage 
>> (JmsServiceComponent.java:213)
>>        at org.apache.activemq.ActiveMQMessageConsumer.dispatch 
>> (ActiveMQMessageConsumer.java:716)
>>        at org.apache.activemq.ActiveMQSessionExecutor.dispatch 
>> (ActiveMQSessionExecutor.java:93)
>>        at org.apache.activemq.ActiveMQSessionExecutor.iterate 
>> (ActiveMQSessionExecutor.java:146)
>>        at org.apache.activemq.thread.SimpleTaskRunner.runTask 
>> (SimpleTaskRunner.java:110)
>>        at org.apache.activemq.thread.SimpleTaskRunner.access$100 
>> (SimpleTaskRunner.java:25)
>>        at org.apache.activemq.thread.SimpleTaskRunner$1.run 
>> (SimpleTaskRunner.java:43)
>>        at  
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
>> $Worker.runTask(ThreadPoolExecutor.java:643)
>>        at  
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
>> $Worker.run(ThreadPoolExecutor.java:668)
>>        at java.lang.Thread.run(Thread.java:595)
>> Caused by: org.apache.servicemix.jbi.NoServiceAvailableException:  
>> Cannot find an instance of the service: {urn:echo:bpel:bsoap} 
>> EchoServiceBP
>>        at  
>> org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver.crea 
>> teServiceUnavailableException(ServiceAndEndpointNameResolver.java:75)
>>        at  
>> org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndp 
>> oint(EndpointResolverSupport.java:39)
>>        at org.apache.servicemix.jbi.nmr.Broker.resolveAddress 
>> (Broker.java:357)
>>        ... 15 more
>
>
>

Re: Service Engine development

Posted by Rob Davies <ra...@gmail.com>.
Hi Charles,

could you post the deployment descriptor for your SA so we can check  
the format ? Although the SU is deployed - it's not advertised it's  
endpoint to the container.
You either have to do this in the SU code itself - or in the  
descriptor for the SA.

cheers,

Rob

On 9 Feb 2006, at 16:12, Charles Souillard wrote:

> Hi all,
>
> I have writen a Service Engine for my app and I have deployed it  
> into SM.
> I have deployed a SA composed of two SUs.
> I can use the JMX console to verify my component is well installed  
> and my two SU well deployed into my component.
> I am now trying to call one of the two services I exposed in my SA  
> but I get the following exception (see under)
> I probably missed to inform the NMR of my services deployment.
> Which code do I have to add ? where ?
>
> I had a look into SM http and SM wsn but I didn't discover the  
> problem.
> Can you help me ?
>
> I am using Sun JDK 1.5 and SM svn head of this morning.
>
> Thanks a lot for your answers,
> Charles
>
> INFO - DeliveryChannelImpl.createExchangeFactory(162) | default  
> destination serviceName for myComponent = {urn:echo:bpel:bsoap} 
> EchoServiceBP
> INFO - DeliveryChannelImpl.createExchangeFactory(172) | default  
> destination operationName for myComponent = {http://xbean.org/ 
> schemas/spring/1.0}echo
> INFO - DeliveryChannelImpl.createExchangeFactory(177) | default  
> destination endpointName for myComponent = echoPT
> WARN - DeliveryChannelImpl.createExchangeFactory(194) | Could not  
> find destination endpoint for myComponent service 
> ({urn:echo:bpel:bsoap}EchoServiceBP) with endpointName echoPT
> WARN - Broker.resolveAddress(337) | ServiceName  
> ({urn:echo:bpel:bsoap}EchoServiceBP) specified for routing, but  
> can't find it registered
> ERROR - JmsServiceComponent.onMessage(248) | Failed to process  
> inbound JMS Message: ActiveMQTextMessage {commandId = 7,  
> responseRequired = true, messageId =  
> ID:frec445363-37477-1139500102721-0:0:1:1:1, originalDestination =  
> null, originalTransactionId = null, producerId =  
> ID:frec445363-37477-1139500102721-0:0:1:1, destination = topic:// 
> demo.org.servicemix.source, transactionId = null, expiration = 0,  
> timestamp = 1139500103080, arrival = 0, correlationId = null,  
> replyTo = temp-topic://ID:frec445363-37477-1139500102721-0:0:1,  
> persistent = true, type = null, priority = 4, groupID = null,  
> groupSequence = 0, targetConsumerId = null, compressed = false,  
> userID = null, content = null, marshalledProperties = null,  
> dataStructure = null, redeliveryCounter = 0, text = <?xml  
> version="1.0" encoding="UTF-8"?><echoString>coucouBoy</echoString>}
> javax.jbi.messaging.MessagingException: Failed to resolve endpoint:  
> org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find  
> an instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
>        at org.apache.servicemix.jbi.nmr.Broker.resolveAddress 
> (Broker.java:360)
>        at org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket 
> (Broker.java:280)
>        at  
> org.apache.servicemix.jbi.container.JBIContainer.sendExchange 
> (JBIContainer.java:609)
>        at  
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend 
> (DeliveryChannelImpl.java:362)
>        at  
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync 
> (DeliveryChannelImpl.java:436)
>        at  
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync 
> (DeliveryChannelImpl.java:413)
>        at  
> org.apache.servicemix.components.jms.JmsServiceComponent.onMessage 
> (JmsServiceComponent.java:213)
>        at org.apache.activemq.ActiveMQMessageConsumer.dispatch 
> (ActiveMQMessageConsumer.java:716)
>        at org.apache.activemq.ActiveMQSessionExecutor.dispatch 
> (ActiveMQSessionExecutor.java:93)
>        at org.apache.activemq.ActiveMQSessionExecutor.iterate 
> (ActiveMQSessionExecutor.java:146)
>        at org.apache.activemq.thread.SimpleTaskRunner.runTask 
> (SimpleTaskRunner.java:110)
>        at org.apache.activemq.thread.SimpleTaskRunner.access$100 
> (SimpleTaskRunner.java:25)
>        at org.apache.activemq.thread.SimpleTaskRunner$1.run 
> (SimpleTaskRunner.java:43)
>        at  
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
> $Worker.runTask(ThreadPoolExecutor.java:643)
>        at  
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor 
> $Worker.run(ThreadPoolExecutor.java:668)
>        at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.servicemix.jbi.NoServiceAvailableException:  
> Cannot find an instance of the service: {urn:echo:bpel:bsoap} 
> EchoServiceBP
>        at  
> org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver.crea 
> teServiceUnavailableException(ServiceAndEndpointNameResolver.java:75)
>        at  
> org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndp 
> oint(EndpointResolverSupport.java:39)
>        at org.apache.servicemix.jbi.nmr.Broker.resolveAddress 
> (Broker.java:357)
>        ... 15 more


Re: Service Engine development

Posted by Le Jeune Goulven <go...@bull.net>.
Hi Guillaume,

Charles is integrating the BPEL engine Bull has developped as part of 
its SOA offer. We are considering putting it to open source. Do you 
think that it would be good idea ? Would that be something that would 
interest ServiceMix ?

Regards,
Goulven


Guillaume Nodet wrote:

> Hi Charles !
>
> If I recall, you use the servicemix-common.
> In this case, you just have to add some endpoint to the service unit 
> that the deployer creates.
> These endpoints must override the activate method to register the jbi 
> endpoint in the NMR.
> Take a look at 
> http://svn.apache.org/viewcvs.cgi/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java?rev=374053&view=markup 
>
>
> In the case you do not use servicemix-common, you have
> to manually register the jbi endpoint using
>  ComponentContext.activateEndpoint(service, endpoint)
>
> Btw, i'm curious to know which bpel engine you are integrating...
> Could you please tell me ?
> Also, would you consider open sourcing this component ?
>
> Cheers,
> Guillaume Nodet
>
> Charles Souillard wrote:
>
>> Hi all,
>>
>> I have writen a Service Engine for my app and I have deployed it into 
>> SM.
>> I have deployed a SA composed of two SUs.
>> I can use the JMX console to verify my component is well installed 
>> and my two SU well deployed into my component.
>> I am now trying to call one of the two services I exposed in my SA 
>> but I get the following exception (see under)
>> I probably missed to inform the NMR of my services deployment.
>> Which code do I have to add ? where ?
>>
>> I had a look into SM http and SM wsn but I didn't discover the problem.
>> Can you help me ?
>>
>> I am using Sun JDK 1.5 and SM svn head of this morning.
>>
>> Thanks a lot for your answers,
>> Charles
>>
>> INFO - DeliveryChannelImpl.createExchangeFactory(162) | default 
>> destination serviceName for myComponent = 
>> {urn:echo:bpel:bsoap}EchoServiceBP
>> INFO - DeliveryChannelImpl.createExchangeFactory(172) | default 
>> destination operationName for myComponent = 
>> {http://xbean.org/schemas/spring/1.0}echo
>> INFO - DeliveryChannelImpl.createExchangeFactory(177) | default 
>> destination endpointName for myComponent = echoPT
>> WARN - DeliveryChannelImpl.createExchangeFactory(194) | Could not 
>> find destination endpoint for myComponent 
>> service({urn:echo:bpel:bsoap}EchoServiceBP) with endpointName echoPT
>> WARN - Broker.resolveAddress(337) | ServiceName 
>> ({urn:echo:bpel:bsoap}EchoServiceBP) specified for routing, but can't 
>> find it registered
>> ERROR - JmsServiceComponent.onMessage(248) | Failed to process 
>> inbound JMS Message: ActiveMQTextMessage {commandId = 7, 
>> responseRequired = true, messageId = 
>> ID:frec445363-37477-1139500102721-0:0:1:1:1, originalDestination = 
>> null, originalTransactionId = null, producerId = 
>> ID:frec445363-37477-1139500102721-0:0:1:1, destination = 
>> topic://demo.org.servicemix.source, transactionId = null, expiration 
>> = 0, timestamp = 1139500103080, arrival = 0, correlationId = null, 
>> replyTo = temp-topic://ID:frec445363-37477-1139500102721-0:0:1, 
>> persistent = true, type = null, priority = 4, groupID = null, 
>> groupSequence = 0, targetConsumerId = null, compressed = false, 
>> userID = null, content = null, marshalledProperties = null, 
>> dataStructure = null, redeliveryCounter = 0, text = <?xml 
>> version="1.0" encoding="UTF-8"?><echoString>coucouBoy</echoString>}
>> javax.jbi.messaging.MessagingException: Failed to resolve endpoint: 
>> org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an 
>> instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
>>        at 
>> org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:360)
>>        at 
>> org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:280)
>>        at 
>> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:609) 
>>
>>        at 
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:362) 
>>
>>        at 
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:436) 
>>
>>        at 
>> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:413) 
>>
>>        at 
>> org.apache.servicemix.components.jms.JmsServiceComponent.onMessage(JmsServiceComponent.java:213) 
>>
>>        at 
>> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:716) 
>>
>>        at 
>> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:93) 
>>
>>        at 
>> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:146) 
>>
>>        at 
>> org.apache.activemq.thread.SimpleTaskRunner.runTask(SimpleTaskRunner.java:110) 
>>
>>        at 
>> org.apache.activemq.thread.SimpleTaskRunner.access$100(SimpleTaskRunner.java:25) 
>>
>>        at 
>> org.apache.activemq.thread.SimpleTaskRunner$1.run(SimpleTaskRunner.java:43) 
>>
>>        at 
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643) 
>>
>>        at 
>> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668) 
>>
>>        at java.lang.Thread.run(Thread.java:595)
>> Caused by: org.apache.servicemix.jbi.NoServiceAvailableException: 
>> Cannot find an instance of the service: 
>> {urn:echo:bpel:bsoap}EchoServiceBP
>>        at 
>> org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver.createServiceUnavailableException(ServiceAndEndpointNameResolver.java:75) 
>>
>>        at 
>> org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndpoint(EndpointResolverSupport.java:39) 
>>
>>        at 
>> org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:357)
>>        ... 15 more
>>
>>
>
>


Re: Service Engine development

Posted by Guillaume Nodet <gu...@worldonline.fr>.
Hi Charles !

If I recall, you use the servicemix-common.
In this case, you just have to add some endpoint to the service unit 
that the deployer creates.
These endpoints must override the activate method to register the jbi 
endpoint in the NMR.
Take a look at 
http://svn.apache.org/viewcvs.cgi/incubator/servicemix/trunk/servicemix-jsr181/src/main/java/org/apache/servicemix/jsr181/Jsr181Endpoint.java?rev=374053&view=markup

In the case you do not use servicemix-common, you have
to manually register the jbi endpoint using
  ComponentContext.activateEndpoint(service, endpoint)

Btw, i'm curious to know which bpel engine you are integrating...
Could you please tell me ?
Also, would you consider open sourcing this component ?

Cheers,
Guillaume Nodet

Charles Souillard wrote:

> Hi all,
>
> I have writen a Service Engine for my app and I have deployed it into SM.
> I have deployed a SA composed of two SUs.
> I can use the JMX console to verify my component is well installed and 
> my two SU well deployed into my component.
> I am now trying to call one of the two services I exposed in my SA but 
> I get the following exception (see under)
> I probably missed to inform the NMR of my services deployment.
> Which code do I have to add ? where ?
>
> I had a look into SM http and SM wsn but I didn't discover the problem.
> Can you help me ?
>
> I am using Sun JDK 1.5 and SM svn head of this morning.
>
> Thanks a lot for your answers,
> Charles
>
> INFO - DeliveryChannelImpl.createExchangeFactory(162) | default 
> destination serviceName for myComponent = 
> {urn:echo:bpel:bsoap}EchoServiceBP
> INFO - DeliveryChannelImpl.createExchangeFactory(172) | default 
> destination operationName for myComponent = 
> {http://xbean.org/schemas/spring/1.0}echo
> INFO - DeliveryChannelImpl.createExchangeFactory(177) | default 
> destination endpointName for myComponent = echoPT
> WARN - DeliveryChannelImpl.createExchangeFactory(194) | Could not find 
> destination endpoint for myComponent 
> service({urn:echo:bpel:bsoap}EchoServiceBP) with endpointName echoPT
> WARN - Broker.resolveAddress(337) | ServiceName 
> ({urn:echo:bpel:bsoap}EchoServiceBP) specified for routing, but can't 
> find it registered
> ERROR - JmsServiceComponent.onMessage(248) | Failed to process inbound 
> JMS Message: ActiveMQTextMessage {commandId = 7, responseRequired = 
> true, messageId = ID:frec445363-37477-1139500102721-0:0:1:1:1, 
> originalDestination = null, originalTransactionId = null, producerId = 
> ID:frec445363-37477-1139500102721-0:0:1:1, destination = 
> topic://demo.org.servicemix.source, transactionId = null, expiration = 
> 0, timestamp = 1139500103080, arrival = 0, correlationId = null, 
> replyTo = temp-topic://ID:frec445363-37477-1139500102721-0:0:1, 
> persistent = true, type = null, priority = 4, groupID = null, 
> groupSequence = 0, targetConsumerId = null, compressed = false, userID 
> = null, content = null, marshalledProperties = null, dataStructure = 
> null, redeliveryCounter = 0, text = <?xml version="1.0" 
> encoding="UTF-8"?><echoString>coucouBoy</echoString>}
> javax.jbi.messaging.MessagingException: Failed to resolve endpoint: 
> org.apache.servicemix.jbi.NoServiceAvailableException: Cannot find an 
> instance of the service: {urn:echo:bpel:bsoap}EchoServiceBP
>        at 
> org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:360)
>        at 
> org.apache.servicemix.jbi.nmr.Broker.sendExchangePacket(Broker.java:280)
>        at 
> org.apache.servicemix.jbi.container.JBIContainer.sendExchange(JBIContainer.java:609) 
>
>        at 
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.doSend(DeliveryChannelImpl.java:362) 
>
>        at 
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:436) 
>
>        at 
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.sendSync(DeliveryChannelImpl.java:413) 
>
>        at 
> org.apache.servicemix.components.jms.JmsServiceComponent.onMessage(JmsServiceComponent.java:213) 
>
>        at 
> org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:716) 
>
>        at 
> org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:93) 
>
>        at 
> org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:146) 
>
>        at 
> org.apache.activemq.thread.SimpleTaskRunner.runTask(SimpleTaskRunner.java:110) 
>
>        at 
> org.apache.activemq.thread.SimpleTaskRunner.access$100(SimpleTaskRunner.java:25) 
>
>        at 
> org.apache.activemq.thread.SimpleTaskRunner$1.run(SimpleTaskRunner.java:43) 
>
>        at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:643) 
>
>        at 
> edu.emory.mathcs.backport.java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:668) 
>
>        at java.lang.Thread.run(Thread.java:595)
> Caused by: org.apache.servicemix.jbi.NoServiceAvailableException: 
> Cannot find an instance of the service: 
> {urn:echo:bpel:bsoap}EchoServiceBP
>        at 
> org.apache.servicemix.jbi.resolver.ServiceAndEndpointNameResolver.createServiceUnavailableException(ServiceAndEndpointNameResolver.java:75) 
>
>        at 
> org.apache.servicemix.jbi.resolver.EndpointResolverSupport.resolveEndpoint(EndpointResolverSupport.java:39) 
>
>        at 
> org.apache.servicemix.jbi.nmr.Broker.resolveAddress(Broker.java:357)
>        ... 15 more
>
>