ok thx Guillaume, this is helpful. now i see notifications going to the topic
& pullpoint. 

still unable to complete the scenario with pullpoint getMessages.  i am
attempting to send
 getMessages request using wsa to route to the internal pullpoint, but no
success 
(messages/log below).  

in your soapui example you also send the request to the broker's http
endpoint using wsa. 
what am i missing here ?

this is my xbean.xml:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0";
       xmlns:wsn="http://servicemix.org/wsnotification";>

<http:endpoint service="wsn:NotificationBroker"
                 endpoint="http-binding1"
                 targetService="wsn:NotificationBroker"
                 targetEndpoint="Broker"
                 role="consumer"
                 locationURI="http://localhost:8192/Broker/";
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
                 soap="true"/>                 

  <http:endpoint service="wsn:CreatePullPoint"
                 endpoint="http-binding2"
                 targetService="wsn:CreatePullPoint"
                 targetEndpoint="Broker"
                 role="consumer"
                 locationURI="http://localhost:8192/CreatePullPoint/";
                 defaultMep="http://www.w3.org/2004/08/wsdl/in-out";
                 soap="true"/>

</beans>

this is the message sequence and log error:

1) createPullPoint:

<!-- sent to http://localhost:8192/CreatePullPoint -->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
        <env:Body>
                <wsnt:CreatePullPoint
                        xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";
                        xmlns:sm="http://servicemix.apache.org/wsn2005/1.0";>
                </wsnt:CreatePullPoint>
        </env:Body>
</env:Envelope>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
   <env:Body>
      <ns4:CreatePullPointResponse
xmlns:ns2="http://www.w3.org/2005/08/addressing";
xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2";
xmlns:ns4="http://docs.oasis-open.org/wsn/b-2";
xmlns:ns5="http://docs.oasis-open.org/wsn/t-1";>
         <ns4:PullPoint>
           
<ns2:Address>http://servicemix.org/wsnotification/PullPoint/ID-USMKETSBIERNA1-4946-1187638679054-6-0</ns2:Address>
         </ns4:PullPoint>
      </ns4:CreatePullPointResponse>
   </env:Body>
</env:Envelope>

2) take returned address, and subscribe pullpoint as follows:

<!-- sent to http://localhost:8192/Broker -->
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
        <env:Body>
                <wsnt:Subscribe xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2";
                        xmlns:wsa="http://www.w3.org/2005/08/addressing";>
                        <wsnt:ConsumerReference>
                                <wsa:Address>
                                        <!-- returned from createPullPoint -->
                                
endpoint:http://servicemix.org/wsnotification/PullPoint/ID-USMKETSBIERNA1-4946-1187638679054-6-0
                                </wsa:Address>
                        </wsnt:ConsumerReference>
                        <!--  <wsnt:UseNotify>false</wsnt:UseNotify> -->
                        <wsnt:Filter>
                                <wsnt:TopicExpression
                                        
Dialect="http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple";>
                                        myTopic
                                </wsnt:TopicExpression>
                        </wsnt:Filter>
                </wsnt:Subscribe>
        </env:Body>
</env:Envelope>

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
   <env:Body>
      <ns4:SubscribeResponse
xmlns:ns2="http://www.w3.org/2005/08/addressing";
xmlns:ns3="http://docs.oasis-open.org/wsrf/bf-2";
xmlns:ns4="http://docs.oasis-open.org/wsn/b-2";
xmlns:ns5="http://docs.oasis-open.org/wsn/t-1";
xmlns:ns6="http://docs.oasis-open.org/wsn/br-2";>
         <ns4:SubscriptionReference>
           
<ns2:Address>http://servicemix.org/wsnotification/Subscription/ID-USMKETSBIERNA1-4946-1187638679054-3-0</ns2:Address>
         </ns4:SubscriptionReference>
         <ns4:TerminationTime xsi:nil="true"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"/>
      </ns4:SubscribeResponse>
   </env:Body>
</env:Envelope>

note: at this point the topic myTopic is created in amq, and an endpoint for
the pullpoint is created in smx,.

3) notify

<!-- sent to http://localhost:8192/Broker -->
<soapenv:Envelope
        xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
        <soapenv:Header />
        <soapenv: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";>
                                        myTopic
                                </wsnt:Topic>
                                <wsnt:Message>
                                        <hello>world</hello>
                                </wsnt:Message>
                        </wsnt:NotificationMessage>
                </wsnt:Notify>
        </soapenv:Body>
</soapenv:Envelope>

note: upon first notification, a queue is created for the pullpoint in amq
(queue has same id as smx pullpoint endpoint).
observe that myTopic EnqueueCount attribute increases with each
notification, and pullpoint queue EnqueueCount attribute 
increases also.

4) now try getMessages against pullpoint, using wsa to route to internal
endpoint:

<!-- sent to http://localhost:8192/Broker -->
<soapenv:Envelope 
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"; 
   xmlns:b="http://docs.oasis-open.org/wsn/b-2";
   xmlns:wsa="http://www.w3.org/2005/08/addressing";>
   <soapenv:Header>
      <wsa:To>
         
endpoint:http://servicemix.org/wsnotification/PullPoint/ID-USMKETSBIERNA1-4946-1187638679054-6-0
      </wsa:To>
   </soapenv:Header>
   <soapenv:Body>
      <b:GetMessages>
      </b:GetMessages>
   </soapenv:Body>
</soapenv:Envelope>

<<no response>>

<<log output>>
15:43:47,167 | DEBUG | @ localhost:8192 | JettyContextManager              |
ContextManager$ThreadPoolWrapper  441 | Dispatching job:
[EMAIL PROTECTED],io=1,w=true,b=0|0]
15:43:47,167 | DEBUG | ool0-1 - /Broker | jetty                            |
.servicemix.http.jetty.JCLLogger   67 | REQUEST /Broker on
[EMAIL PROTECTED]
15:43:47,167 | DEBUG | ool0-1 - /Broker | jetty                            |
.servicemix.http.jetty.JCLLogger   67 | RESPONSE /Broker  302



gnodet wrote:
> 
> The WS-Notification broker will send a notification message to the address
> you subscribed.
> If you have created a PullPoint, you need to create a subscription for it. 
> The URI you give in your subscription must be a recognized URI: see
> http://incubator.apache.org/servicemix/uris.html.
> 
> It means, if you send "http://test.org"; in the URI, it will try to send a
> notification using http on the given uri.   You need to try something like
> "endpoint:qname[sep]name".
> 
> For the soap problem, you need to create a soap proxy for your PullPoint,
> which can be done by deploying a SU on the http component.
> 
> Hope it helps,
> Guillaume Nodet
> 
> 

-- 
View this message in context: 
http://www.nabble.com/WSN-PullPoint-getMessages-tf4179625s12049.html#a12257338
Sent from the ServiceMix - User mailing list archive at Nabble.com.

Reply via email to