Ok, so I must still be missing something and I'm guessing it's with my wsa
address.  Here are the wsn services I have deployed:


   - 
http://localhost:8199/NotificationBroker/<http://localhost:8199/NotificationBroker/?wsdl>
   - 
http://localhost:8199/CreatePullPoint/<http://localhost:8199/CreatePullPoint/?wsdl>

  Here are the requests and responses (the notifications as I said are done
by a component on the bus) as I send from SoapUI:

CreatePullPoint Request to http://localhost:8199/CreatePullPoint/

<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/";>
    <env:Header />
    <env:Body>
        <wsnt:CreatePullPoint
            xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"; />
    </env:Body>
</env:Envelope>


CreatePullPointResponse:

<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-arcmap15-1458-1190728484567-8-0
</ns2:Address>
         </ns4:PullPoint>
      </ns4:CreatePullPointResponse>
   </env:Body>
</env:Envelope>

--------------------------------------------------------------------------------

Subscribe request to http://localhost:8199/NotificationBroker/ (with / on
wsa address):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"; xmlns:wsa="
http://www.w3.org/2005/08/addressing";>
   <soapenv:Header/>
   <soapenv: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>
endpoint:
http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-1458-1190728484567-8-0/
    </wsa:Address>
  </wsnt:ConsumerReference>
  <wsnt:Filter>
    <wsnt:TopicExpression Dialect="
http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple";>
      notificationTopic
    </wsnt:TopicExpression>
  </wsnt:Filter>
</wsnt:Subscribe>
   </soapenv:Body>
</soapenv:Envelope>

Subscribe Response (with endpoint in from of pullpoint url as shown on the
servicemix page):

<html>
   <head>
      <meta http-equiv="Content-Type" content="text/html;
charset=ISO-8859-1"/>
      <title>Error 500</title>
   </head>
   <body>
      <h2>HTTP ERROR: 500</h2>
      <pre>org.apache.servicemix.wsn.jaxws.SubscribeCreationFailedFault:
Unable to resolve consumer reference endpoint</pre>
      <p>RequestURI=/NotificationBroker/</p>
      <h3>Caused by:</h3>
      <pre>java.lang.Exception:
org.apache.servicemix.wsn.jaxws.SubscribeCreationFailedFault: Unable to
resolve consumer reference endpoint
    at org.apache.servicemix.http.processors.ConsumerProcessor.process(
ConsumerProcessor.java:195)
    at org.apache.servicemix.http.HttpBridgeServlet.doPost(
HttpBridgeServlet.java:71)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:617)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java
:487)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java
:362)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java
:712)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(
ContextHandlerCollection.java:211)
    at org.mortbay.jetty.handler.HandlerCollection.handle(
HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java
:139)
    at org.mortbay.jetty.Server.handle(Server.java:313)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java
:506)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:375)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(
SelectChannelEndPoint.java:396)
    at org.mortbay.jetty.nio.SelectChannelConnector$RetryContinuation.run(
SelectChannelConnector.java:511)
    at org.mortbay.thread.BoundedThreadPool$PoolThread.run(
BoundedThreadPool.java:442)
Caused by: org.apache.servicemix.wsn.jaxws.SubscribeCreationFailedFault:
Unable to resolve consumer reference endpoint
    at org.apache.servicemix.wsn.jbi.JbiSubscription.validateSubscription(
JbiSubscription.java:88)
    at org.apache.servicemix.wsn.AbstractSubscription.create(
AbstractSubscription.java:277)
    at org.apache.servicemix.wsn.AbstractNotificationBroker.handleSubscribe(
AbstractNotificationBroker.java:178)
    at org.apache.servicemix.wsn.AbstractNotificationBroker.subscribe(
AbstractNotificationBroker.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.servicemix.wsn.component.WSNEndpoint.process(
WSNEndpoint.java:143)
    at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
AsyncBaseLifeCycle.java:538)
    at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
AsyncBaseLifeCycle.java:490)
    at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
BaseLifeCycle.java:46)
    at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
DeliveryChannelImpl.java:610)
    at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
AbstractFlow.java:170)
    at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
SedaFlow.java:167)
    at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
SedaQueue.java:134)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)</pre>
      <h3>Caused by:</h3>
      <pre>org.apache.servicemix.wsn.jaxws.SubscribeCreationFailedFault:
Unable to resolve consumer reference endpoint
    at org.apache.servicemix.wsn.jbi.JbiSubscription.validateSubscription(
JbiSubscription.java:88)
    at org.apache.servicemix.wsn.AbstractSubscription.create(
AbstractSubscription.java:277)
    at org.apache.servicemix.wsn.AbstractNotificationBroker.handleSubscribe(
AbstractNotificationBroker.java:178)
    at org.apache.servicemix.wsn.AbstractNotificationBroker.subscribe(
AbstractNotificationBroker.java:163)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:585)
    at org.apache.servicemix.wsn.component.WSNEndpoint.process(
WSNEndpoint.java:143)
    at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
AsyncBaseLifeCycle.java:538)
    at org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
AsyncBaseLifeCycle.java:490)
    at org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
BaseLifeCycle.java:46)
    at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
DeliveryChannelImpl.java:610)
    at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
AbstractFlow.java:170)
    at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
SedaFlow.java:167)
    at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
SedaQueue.java:134)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
ThreadPoolExecutor.java:650)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(
ThreadPoolExecutor.java:675)
    at java.lang.Thread.run(Thread.java:595)</pre>
      <p>
         <i>
            <small>
               <a href="http://jetty.mortbay.org/";>Powered by Jetty://</a>
            </small>
         </i>
      </p>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
      <br/>
   </body>
</html>

-----------------------------------------------------------------------------------

Subscribe without endpoint in the wsa address for the pullpoint (and with /
on wsa address):

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"; xmlns:wsa="
http://www.w3.org/2005/08/addressing";>
   <soapenv:Header/>
   <soapenv: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>
http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-1458-1190728484567-8-0/
    </wsa:Address>
  </wsnt:ConsumerReference>
  <wsnt:Filter>
    <wsnt:TopicExpression Dialect="
http://docs.oasis-open.org/wsn/t-1/TopicExpression/Simple";>
      notificationTopic
    </wsnt:TopicExpression>
  </wsnt:Filter>
</wsnt:Subscribe>
   </soapenv:Body>
</soapenv:Envelope>

Subscribe response without endpoint in the wsa address:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
   <soapenv: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-arcmap15-1458-1190728484567-6-1
</ns2:Address>
         </ns4:SubscriptionReference>
         <ns4:TerminationTime xsi:nil="true" xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"/>
      </ns4:SubscribeResponse>
   </soapenv:Body>
</soapenv:Envelope>

At this point my service is sending notifications to:

DEBUG - SedaQueue                      -
[EMAIL PROTECTED] dequeued
exchange: In
Only[
  id: ID:10.40.16.154-1153cf2d126-20:0
  status: Error
  role: consumer
  endpoint:
http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-1458-1190728484567-8-0/

and erroring out with 302s, but I put slashes at the end.  The only
difference between what I did and what's on the servicemix page with the
scenario is that I didn't use endpoint because the subscribe doesn't work
with endpoint in the address (I'm assuming that's only needed when
subscribing from inside servicemix?).

Do you see anything wrong with the above exchange?
On 9/25/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
>
> Oh shoot, you know what?  The pullpoint address doesn't have a slash, for
> some reason I didn't think it applied there since it wasn't given that way
> and because I'm not sending the request to it directly.  I figured
> http://localhost:8192/NotificationBroker/ and things like that were what
> was needed, I'm positive that's it.
>
> I really appreciate how helpful (and patient since I know I've posted a
> few dumb questions) you guys are on this list.  It's a luxury I'm not used
> to!
>
> On 9/25/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> >
> > 302 is the http error code that is usually sent by servicemix when the
> > uri used does not have a trailing '/'.  Check your pullpoint address
> > maybe ?
> >
> > On 9/25/07, Ryan Moquin < [EMAIL PROTECTED]> wrote:
> > > I'm still trying to get the Notifications to work in servicemix, I
> > seem to
> > > keep running into weird problems that lead me to think I'm not
> > configuring
> > > something correctly.  So here is my scenario:
> > >
> > > I have a thread that runs in a CXF service which creates a
> > > NotificationBroker like this:
> > >
> > > ClientFactory factory = (ClientFactory) new InitialContext().lookup(
> > > ClientFactory.DEFAULT_JNDI_NAME );
> > >       this.client = factory.createClient();
> > >       ((DefaultServiceMixClient) this.client).setMarshaler(new
> > > JAXBMarshaler(jaxbContext));
> > >
> > >       this.wsnBroker = new NotificationBroker(client);
> > >
> > >
> > > It publishes notifications such as the following, which initially seem
> > to be
> > > fine (No pullpoints are created yet, so it appears it's published
> > straight
> > > to the broker):
> > >
> > > DEBUG - SedaFlow                       - Called Flow send
> > > DEBUG - DeliveryChannelImpl            - Waiting for exchange ID:
> > > 192.168.1.2-1153b25d35b-25:0 (8549ab) to be answered in
> > > DeliveryChannel{ID: 192.168.1.2-1153b25d35b-0:0} from sendSync
> > > DEBUG - SedaQueue                      -
> > > [EMAIL PROTECTED] dequeued
> > > exchange: In
> > > Only[
> > >   id: ID:192.168.1.2-1153b25d35b-25 :0
> > >   status: Active
> > >   role: provider
> > >   endpoint: Broker
> > >   in: <?xml version="1.0" encoding="UTF-8"?><ns3:Notify xmlns:ns3="
> > > http://docs.oasis-open.org/wsn/b-2"; xmlns="urn://notification.test"
> > > xmlns:ns2="http://www.w3.org/2005/08/addressing"; xmlns:ns4="
> > > http://docs.oasis-open.org/w
> > > srf/bf-2" xmlns:ns5="http://docs.oasis-open.org/wsn/t-1"; xmlns:ns6="
> > > http://docs.oasis-open.org/wsn/br-2";><ns3:Notificatio
> > >
> > nMessage><ns3:Topic>notificationTopic</ns3:Topic><ns3:Message><Notification>...
> >
> > > ]
> > > DEBUG - WSNComponent                   - Received exchange: status:
> > Active,
> > > role: provider
> > > DEBUG - WSNComponent                   - Retrieved correlation id:
> > null
> > > DEBUG - AbstractNotificationBroker     - Notify
> > > DEBUG - DeliveryChannelImpl            - Send ID:
> > 192.168.1.2-1153b25d35b-25:0
> > > in DeliveryChannel{servicemix-wsn2005}
> > >
> > >
> > > So then I create a pullpoint, and create a subscription to the
> > pullpoint
> > > with plain soap messages from soapUI.  I receive the responses back I
> > would
> > > expect, but now I start getting errors on each notification.  The
> > pullpoint
> > > for this example that I created and then subscribed to is this:
> > >
> > >
> > http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-3199-1190698261218-8-0
> > >
> > > I can access the pullpoint and attempt to retrieve messages, but the
> > > response is always empty.  So it appears that's fine.  Now the
> > notifications
> > > start looking like this:
> > >
> > > DEBUG - DeliveryChannelImpl            - Notifying exchange ID:
> > > 192.168.1.2-1153b403626-25 :3(1fb03f0) in DeliveryChannel{I
> > > D:192.168.1.2-1153b403626-0:0} from processInboundSynchronousExchange
> > > DEBUG - DeliveryChannelImpl            - Notified: ID:
> > > 192.168.1.2-1153b403626-25:3(1fb03f0) in DeliveryChannel{ID: 192.168
> > > .1.2-1153b403626-0:0} from sendSync
> > > DEBUG - DeliveryChannelImpl            - Send ID:
> > 192.168.1.2-1153b403626-20:0
> > > in DeliveryChannel{servicemix-wsn2005}
> > > DEBUG - SedaFlow                       - Called Flow send
> > > DEBUG - SedaQueue                      -
> > > [EMAIL PROTECTED] dequeued
> > > exchange: In
> > > Only[
> > >   id: ID:192.168.1.2-1153b403626-20:0
> > >   status: Active
> > >   role: provider
> > >   endpoint:
> > > http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-3199-1190698261218-8-0
> >
> > >   in: <?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/wsn/t-1
> > >
> > "><ns2:NotificationMessage><ns2:Topic>notificationTopic</ns2:Topic><ns2:Message><Notification>...
> >
> > > ]
> > > WARN  - DeliveryChannelImpl            - Error calling listener: null
> > > java.lang.NullPointerException
> > >         at
> > >
> > org.apache.servicemix.jbi.monitoring.StatisticsService.onExchangeAccepted(
> > > StatisticsService.java:307)
> > >         at
> > >
> > org.apache.servicemix.jbi.monitoring.StatisticsService$3.exchangeAccepted
> > (
> > > StatisticsService.java:186)
> > >         at
> > > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> > > DeliveryChannelImpl.java:598)
> > >         at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> > > AbstractFlow.java:170)
> > >         at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
> > > SedaFlow.java:167)
> > >         at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
> > > SedaQueue.java:134)
> > >         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> > > ThreadPoolExecutor.java :650)
> > >         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > ThreadPoolExecutor.java:675)
> > >         at java.lang.Thread.run(Thread.java:595)
> > > DEBUG - HttpComponent                  - Received exchange: status:
> > Active,
> > > role: provider
> > > DEBUG - HttpComponent                  - Retrieved correlation id:
> > null
> > > ERROR - HttpComponent                  - Error processing exchange
> > InOnly[
> > >   id: ID:192.168.1.2-1153b403626-20 :0
> > >   status: Active
> > >   role: provider
> > >   endpoint:
> > > http://servicemix.org/wsnotification/PullPoint/ID-arcmap15-3199-1190698261218-8-0
> >
> > >   in: <?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/wsn/t-1
> > >
> > "><ns2:NotificationMessage><ns2:Topic>notificationTopic</ns2:Topic><ns2:Message><Notification>...
> >
> > > ]
> > > java.lang.Exception: Invalid status response: 302
> > >         at
> > org.apache.servicemix.http.processors.ProviderProcessor.process(
> > > ProviderProcessor.java:179)
> > >         at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess (
> > > AsyncBaseLifeCycle.java:538)
> > >         at
> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> > > AsyncBaseLifeCycle.java:490)
> > >         at
> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange (
> > > BaseLifeCycle.java:46)
> > >         at
> > > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound
> > (
> > > DeliveryChannelImpl.java:610)
> > >         at org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting (
> > > AbstractFlow.java:170)
> > >         at org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
> > > SedaFlow.java:167)
> > >         at org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
> > > SedaQueue.java:134)
> > >         at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(
> > > ThreadPoolExecutor.java:650)
> > >         at java.util.concurrent.ThreadPoolExecutor$Worker.run(
> > > ThreadPoolExecutor.java :675)
> > >         at java.lang.Thread.run(Thread.java:595)
> > > DEBUG - DeliveryChannelImpl            - Send ID:
> > 192.168.1.2-1153b403626-20:0
> > > in DeliveryChannel{servicemix-http}
> > >
> > > So my question is, what are the Exceptions that are giving the
> > 302s?  I
> > > retrieved a pullpoint successfully and created a subscription to it,
> > so I
> > > can't think that would be the problem.... might notifications not work
> > > correctly with CXF?
> > >
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Blog: http://gnodet.blogspot.com/
> >
>
>

Reply via email to