You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@servicemix.apache.org by "Matthieu Cormier (JIRA)" <ji...@apache.org> on 2011/01/04 16:28:45 UTC

[jira] Created: (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
------------------------------------------------------------

                 Key: SM-2033
                 URL: https://issues.apache.org/jira/browse/SM-2033
             Project: ServiceMix
          Issue Type: Bug
         Environment: Windows 7 + Cygwin
            Reporter: Matthieu Cormier
             Fix For: 4.0


In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.

1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)

2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  

3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.

4.  Once servicemix has started execute the following soap requests.  

-- Subscribe Soap Message -- 

<env:Envelope
    xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
    xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Header>
<wsa:ReplyTo>
      <wsa:Address>http://localhost:4444</wsa:Address>
 </wsa:ReplyTo>
 <wsa:From>
      <wsa:Address>http://localhost:4444</wsa:Address>
 </wsa:From>
</env:Header>
  <env:Body>
    <wsnt:Subscribe
      xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
      xmlns:ncex="http://www.consumer.org"
      xmlns:npex="http://www.producer.org">
      <wsnt:ConsumerReference>
        <wsa:Address>
          http://localhost:4444
        </wsa:Address>
      </wsnt:ConsumerReference>
      <wsnt:Filter>
        <wsnt:TopicExpression
            Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
          BrewProcess
        </wsnt:TopicExpression>
      </wsnt:Filter>
    </wsnt:Subscribe>
  </env:Body>
</env:Envelope>

-- End Subscribe Soap Message -- 

This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.

-- Notify Soap Message -- 

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
 xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Header>
</env:Header>
<env:Body>
<wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
<wsnt:NotificationMessage>
<wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
BrewProcess
</wsnt:Topic>
<wsnt:Message>
<alarm:Alarm xmlns:alarm="http://alarms.some-host">
<Name>Kettle Overfill</Name>
<Desc>Kettle Overfill Alarm</Desc>
<Date>2007-09-22-12:00:30:100</Date>
<Severity>3</Severity>
<Value>110.2</Value>
<Ack>false</Ack>
</alarm:Alarm>
</wsnt:Message>
</wsnt:NotificationMessage>
</wsnt:Notify>
</env:Body>
</env:Envelope>

-- End Notify Soap Message -- 

This is how things work in 3.3.2.  When using 4.2.0 the following happens.
1. You still need an echo server running
2. Patching servicemix-utils.jar is not necessary in 4.2.0
3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
  to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
4. Start servicemix 4.2.0

5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.

11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
  56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
ttp://servicemix.org/wsnotification}Subscription}

6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.


11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
 293 | Error processing exchange [
  id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
  mep:       InOnly
  status:    Active
  role:      Consumer
  target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
}HttpComponent}]
  properties: [
      org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
79-12d51987db7-2-0
      javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
      javax.jbi.messaging.sendSync = <null>
      javax.jbi.transaction.jta = <null>
      javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
      org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
  ]
  In: [
    content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
//docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
BrewProcess
</ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
/www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
/2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
</alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
  ]
]

org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
        at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
        at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
        at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
        at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
        at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
        at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
        at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
        at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)
11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
 197 | Error notifying consumer
org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
        at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
        at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
        at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
        at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
        at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
        at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
        at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
        at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
        at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
        at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
        at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
        at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
        at java.lang.Thread.run(Thread.java:619)






-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] Assigned: (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Jean-Baptiste Onofré (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SM-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Baptiste Onofré reassigned SM-2033:
----------------------------------------

    Assignee: Jean-Baptiste Onofré

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SM-2033
>                 URL: https://issues.apache.org/jira/browse/SM-2033
>             Project: ServiceMix
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Jean-Baptiste Onofré
>             Fix For: 4.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] Updated: (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Matthieu Cormier (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SM-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Matthieu Cormier updated SM-2033:
---------------------------------

    Attachment: servicemix-utils-1.2.0.jar
                echoServer.zip

echoServer.zip -- The source code for a simple echoServer to receive subscription notifications.

servicemix-utils-1.2.0.jar -- A patched version of the servicemix-utils jar needed for running ws-notification in 3.3.2.

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SM-2033
>                 URL: https://issues.apache.org/jira/browse/SM-2033
>             Project: ServiceMix
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>             Fix For: 4.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


[jira] [Resolved] (SMX4NMR-260) JBI EndpointReference created with ComponentContext.resolveEnpointReference don't work on ServiceMix 4

Posted by "Gert Vanthienen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SMX4NMR-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gert Vanthienen resolved SMX4NMR-260.
-------------------------------------

    Resolution: Fixed

Fixed in http://svn.apache.org/viewvc? view=revision&revision=1083900 by wiring the EPR endpoint directly to the component itself.

The current solution creates a Wire per EPR that gets resolved; as soon as SMX4NMR-200 gets fixed we can make that a single wire per component.

> JBI EndpointReference created with ComponentContext.resolveEnpointReference don't work on ServiceMix 4
> ------------------------------------------------------------------------------------------------------
>
>                 Key: SMX4NMR-260
>                 URL: https://issues.apache.org/jira/browse/SMX4NMR-260
>             Project: ServiceMix NMR
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Gert Vanthienen
>             Fix For: 1.5.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Updated: (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Jean-Baptiste Onofré (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SM-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Baptiste Onofré updated SM-2033:
-------------------------------------

    Fix Version/s:     (was: 4.0)
                   servicemix-utils-1.5.0

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SM-2033
>                 URL: https://issues.apache.org/jira/browse/SM-2033
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-utils
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Jean-Baptiste Onofré
>             Fix For: servicemix-utils-1.5.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

       

[jira] [Assigned] (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Gert Vanthienen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SM-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gert Vanthienen reassigned SM-2033:
-----------------------------------

    Assignee: Gert Vanthienen  (was: Jean-Baptiste Onofré)

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SM-2033
>                 URL: https://issues.apache.org/jira/browse/SM-2033
>             Project: ServiceMix
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Gert Vanthienen
>             Fix For: 1.5.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Updated] (SMX4NMR-260) JBI EndpointReference created with ComponentContext.resolveEnpointReference don't work on ServiceMix 4

Posted by "Gert Vanthienen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SMX4NMR-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gert Vanthienen updated SMX4NMR-260:
------------------------------------

    Summary: JBI EndpointReference created with ComponentContext.resolveEnpointReference don't work on ServiceMix 4  (was: WS-Notification subscriptions work on 3.3.2 but not on 4.2.0)

This appears to be an issue with the NMR's JBI implementation instead of with the component itself

> JBI EndpointReference created with ComponentContext.resolveEnpointReference don't work on ServiceMix 4
> ------------------------------------------------------------------------------------------------------
>
>                 Key: SMX4NMR-260
>                 URL: https://issues.apache.org/jira/browse/SMX4NMR-260
>             Project: ServiceMix NMR
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Gert Vanthienen
>             Fix For: 1.5.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] [Moved] (SMX4NMR-260) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Gert Vanthienen (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SMX4NMR-260?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Gert Vanthienen moved SM-2033 to SMX4NMR-260:
---------------------------------------------

      Component/s:     (was: servicemix-utils)
    Fix Version/s:     (was: servicemix-utils-1.5.0)
                   1.5.0
              Key: SMX4NMR-260  (was: SM-2033)
          Project: ServiceMix NMR  (was: ServiceMix)

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SMX4NMR-260
>                 URL: https://issues.apache.org/jira/browse/SMX4NMR-260
>             Project: ServiceMix NMR
>          Issue Type: Bug
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Gert Vanthienen
>             Fix For: 1.5.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

[jira] Updated: (SM-2033) WS-Notification subscriptions work on 3.3.2 but not on 4.2.0

Posted by "Jean-Baptiste Onofré (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/SM-2033?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jean-Baptiste Onofré updated SM-2033:
-------------------------------------

    Component/s: servicemix-utils

> WS-Notification subscriptions work on 3.3.2 but not on 4.2.0
> ------------------------------------------------------------
>
>                 Key: SM-2033
>                 URL: https://issues.apache.org/jira/browse/SM-2033
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-utils
>         Environment: Windows 7 + Cygwin
>            Reporter: Matthieu Cormier
>            Assignee: Jean-Baptiste Onofré
>             Fix For: 4.0
>
>         Attachments: echoServer.zip, servicemix-utils-1.2.0.jar
>
>
> In order to explain this issue I will first go through how service mix behaves correctly in 3.3.2 and then explain how it works incorrectly in 4.2.0.
> 1. To see publishing working you need a simple echo server.  An echo server is a simple server that listens on a port and prints what it receives to standard output.  This is very useful when establishing the behaviour of a server.  For this example we will run the echo server on port 4444. (see file X)
> 2. There is a documented issue in 3.3.2 with regard to WS-Notification.  Jira SM-1783 (https://issues.apache.org/jira/browse/SM-1783).  This issue is documented as fixed in the yet to be released 3.4.  If you are testing with 3.3.2 then you must patch the file FragmentStreamReader.class which is located in servicemix-utils.jar.  
> 3.  Once you have the echo server running and the servicemix-utils.jar patched you are ready to run the server.  Run the server located in examples\wsn-http-binding using  ..\..\bin\servicemix servicemix.xml or some derivative.
> 4.  Once servicemix has started execute the following soap requests.  
> -- Subscribe Soap Message -- 
> <env:Envelope
>     xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>     xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> <wsa:ReplyTo>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:ReplyTo>
>  <wsa:From>
>       <wsa:Address>http://localhost:4444</wsa:Address>
>  </wsa:From>
> </env:Header>
>   <env:Body>
>     <wsnt:Subscribe
>       xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>       xmlns:ncex="http://www.consumer.org"
>       xmlns:npex="http://www.producer.org">
>       <wsnt:ConsumerReference>
>         <wsa:Address>
>           http://localhost:4444
>         </wsa:Address>
>       </wsnt:ConsumerReference>
>       <wsnt:Filter>
>         <wsnt:TopicExpression
>             Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
>           BrewProcess
>         </wsnt:TopicExpression>
>       </wsnt:Filter>
>     </wsnt:Subscribe>
>   </env:Body>
> </env:Envelope>
> -- End Subscribe Soap Message -- 
> This request will subscribe the echo server to any messages sent to the topic BrewProcess.  Then the following Soap request which will publish information to the BrewProcess Topic.  ServiceMix will see that there is a subscriber to that topic and relay that message to localhost:4444 as defined in the subscription request above.  The echo server will be listening on port 4444 and will receive and print out the message.
> -- Notify Soap Message -- 
> <env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"
>  xmlns:wsa="http://www.w3.org/2005/08/addressing">
> <env:Header>
> </env:Header>
> <env:Body>
> <wsnt:Notify xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2">
> <wsnt:NotificationMessage>
> <wsnt:Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </wsnt:Topic>
> <wsnt:Message>
> <alarm:Alarm xmlns:alarm="http://alarms.some-host">
> <Name>Kettle Overfill</Name>
> <Desc>Kettle Overfill Alarm</Desc>
> <Date>2007-09-22-12:00:30:100</Date>
> <Severity>3</Severity>
> <Value>110.2</Value>
> <Ack>false</Ack>
> </alarm:Alarm>
> </wsnt:Message>
> </wsnt:NotificationMessage>
> </wsnt:Notify>
> </env:Body>
> </env:Envelope>
> -- End Notify Soap Message -- 
> This is how things work in 3.3.2.  When using 4.2.0 the following happens.
> 1. You still need an echo server running
> 2. Patching servicemix-utils.jar is not necessary in 4.2.0
> 3. Copy the file apache-servicemix-3.3.2/examples/wsn-http-binding/hotdeploy/soap-demo-sa.zip
>   to apache-servicemix-4.2.0/deploy/soap-demo-sa.zip
> 4. Start servicemix 4.2.0
> 5. Send the subscribe message as above which subscribes localhost:4444 to the topic BrewProcess.  You should see the following in the log that shows that the subscription was sucessful.
> 11:22:06,475 | INFO  | wsn2005-thread-2 | ManagementEndpointRegistry       | ement.ManagementEndpointRegistry
>   56 | Registering endpoint: org.apache.servicemix.nmr.core.InternalEndpointWrapper@d6efc021 with properties {
> jbi.internal=true, WSDL_URL=document:4, NAME={http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0, INTERFACE_NAME={http://docs.oasis-open.org/wsn/bw-2}PausableSubscriptionManager, service.i
> d=270, objectClass=[Ljava.lang.String;@8bbb40, ENDPOINT_NAME=ID-192-168-0-179-12d51987db7-2-0, SERVICE_NAME={h
> ttp://servicemix.org/wsnotification}Subscription}
> 6.  Send the notify message as above.  The message is not received by the echo server and the following appears in the log file.
> 11:26:24,041 | WARN  | eMQ Session Task | NMR                              | .servicemix.nmr.core.ChannelImpl
>  293 | Error processing exchange [
>   id:        9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   mep:       InOnly
>   status:    Active
>   role:      Consumer
>   target:    PropertyMatchingReference[{ENDPOINT_NAME=http://localhost:4444, SERVICE_NAME={urn:servicemix:http
> }HttpComponent}]
>   properties: [
>       org.apache.servicemix.senderEndpoint = {http://servicemix.org/wsnotification}Subscription:ID-192-168-0-1
> 79-12d51987db7-2-0
>       javax.jbi.messaging.MessageExchange = org.apache.servicemix.jbi.runtime.impl.InOnlyImpl@aafcb8
>       javax.jbi.messaging.sendSync = <null>
>       javax.jbi.transaction.jta = <null>
>       javax.jbi.ServiceEndpoint = org.apache.servicemix.common.ResolvedEndpoint@1b5abf7
>       org.apache.servicemix.correlationId = 9a4e64b1-3a2d-4af3-baea-944b884bdda4
>   ]
>   In: [
>     content: <?xml version="1.0" encoding="UTF-8"?><ns2:Notify xmlns:ns2="http://docs.oasis-open.org/wsn/b-2"
> xmlns="http://www.w3.org/2005/08/addressing" xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2" xmlns:ns4="http:
> //docs.oasis-open.org/wsrf/rp-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"><ns2:NotificationMessage><ns2:
> Topic Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple">
> BrewProcess
> </ns2:Topic><ns2:Message><alarm:Alarm xmlns:alarm="http://alarms.some-host" xmlns:env="http://schemas.xmlsoap.
> org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsnt="http://docs.oasis-open.org/ws
> n/b-2"><Name xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill</Name><Desc xmlns="" x
> mlns:ns10="http://www.w3.org/2005/08/addressing">Kettle Overfill Alarm</Desc><Date xmlns="" xmlns:ns10="http:/
> /www.w3.org/2005/08/addressing">2007-09-22-12:00:30:100</Date><Severity xmlns="" xmlns:ns10="http://www.w3.org
> /2005/08/addressing">3</Severity><Value xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">110.2</Valu
> e><Ack xmlns="" xmlns:ns10="http://www.w3.org/2005/08/addressing">false</Ack>
> </alarm:Alarm></ns2:Message></ns2:NotificationMessage></ns2:Notify>
>   ]
> ]
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)
> 11:26:24,044 | WARN  | eMQ Session Task | JmsSubscription                  | rvicemix.wsn.jms.JmsSubscription
>  197 | Error notifying consumer
> org.apache.servicemix.nmr.api.ServiceMixException: Could not dispatch exchange. No matching endpoints.
>         at org.apache.servicemix.nmr.core.FlowRegistryImpl.dispatch(FlowRegistryImpl.java:110)
>         at org.apache.servicemix.nmr.core.ChannelImpl.dispatch(ChannelImpl.java:286)
>         at org.apache.servicemix.nmr.core.ChannelImpl.send(ChannelImpl.java:117)
>         at org.apache.servicemix.jbi.runtime.impl.DeliveryChannelImpl.send(DeliveryChannelImpl.java:178)
>         at org.apache.servicemix.common.EndpointDeliveryChannel.send(EndpointDeliveryChannel.java:89)
>         at org.apache.servicemix.wsn.jbi.JbiSubscription.doNotify(JbiSubscription.java:137)
>         at org.apache.servicemix.wsn.jms.JmsSubscription.onMessage(JmsSubscription.java:193)
>         at org.apache.activemq.ActiveMQMessageConsumer.dispatch(ActiveMQMessageConsumer.java:1088)
>         at org.apache.activemq.ActiveMQSessionExecutor.dispatch(ActiveMQSessionExecutor.java:127)
>         at org.apache.activemq.ActiveMQSessionExecutor.iterate(ActiveMQSessionExecutor.java:197)
>         at org.apache.activemq.thread.PooledTaskRunner.runTask(PooledTaskRunner.java:122)
>         at org.apache.activemq.thread.PooledTaskRunner$1.run(PooledTaskRunner.java:43)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:885)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:907)
>         at java.lang.Thread.run(Thread.java:619)

-- 
This message is automatically generated by JIRA.
-
For more information on JIRA, see: http://www.atlassian.com/software/jira