You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@servicemix.apache.org by KBerthelot <kb...@edgenet.com> on 2006/08/23 22:16:23 UTC

Creating PullPoints using WS-Notificatino

I'm trying to prototype a WS-Notification client that uses a pull style
notification.  What I've done so far is to add another http:endpoint for the
CreatePullPoint service to xbean.xml in the wsn-http-binding example so that
it looks like:

<?xml version="1.0"?>
<beans xmlns:http="http://servicemix.apache.org/http/1.0"
       xmlns:wsn="http://servicemix.org/wsnotification">

  <http:endpoint service="wsn:NotificationBroker"
                 endpoint="http-binding"
                 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>


I can then get the wsdl for CreatePullPoint using
http://localhost:8192/CreatePullPoint/main.wsdl which returns:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://servicemix.org/wsnotification"
xmlns:tns="http://servicemix.org/wsnotification"
xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsa="http://www.w3.org/2005/08/addressing"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
xmlns:tnspt="http://docs.oasis-open.org/wsn/bw-2"
xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2"
xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
xmlns="http://schemas.xmlsoap.org/wsdl/">
  <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
location="porttypedef.wsdl"/>
  <wsdl:binding name="http-binding2Binding" type="wsntw:CreatePullPoint">
    <wsdlsoap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
    <wsdl:operation name="CreatePullPoint">
      <wsdlsoap:operation soapAction=""/>
      <wsdl:input name="CreatePullPointRequest">
        <wsdlsoap:body use="literal"/>
      </wsdl:input>

      <wsdl:output name="CreatePullPointResponse">
        <wsdlsoap:body use="literal"/>
      </wsdl:output>
      <wsdl:fault name="UnableToCreatePullPointFault">
        <wsdlsoap:fault name="UnableToCreatePullPointFault" use="literal"/>
      </wsdl:fault>
    </wsdl:operation>
  </wsdl:binding>
  <wsdl:service name="CreatePullPoint">

    <wsdl:port name="http-binding2" binding="tns:http-binding2Binding">
      <wsdlsoap:address location="http://localhost:8192/CreatePullPoint/"/>
    </wsdl:port>
  </wsdl:service>
</wsdl:definitions>



When I invoke the CreatePullPoint operation using this wsdl, I get this
exception:

java.lang.RuntimeException: Could not create PullEndpoint
        at
org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:58)
        at
org.apache.servicemix.wsn.jms.JmsCreatePullPoint.createPullPoint(JmsCreatePullPoint.java:43)
        at
org.apache.servicemix.wsn.AbstractCreatePullPoint.handleCreatePullPoint(AbstractCreatePullPoint.java:78)
        at
org.apache.servicemix.wsn.AbstractCreatePullPoint.createPullPoint(AbstractCreatePullPoint.java:70)
        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:136)
        at
org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:397)
        at
org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:42)
        at
org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:619)
        at
org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:168)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:175)
        at
org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:226)
        at
org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
        at
EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Thread.java:595)
Caused by: javax.xml.bind.JAXBException
 - with linked exception:
[java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
        at javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:195)
        at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:561)
        at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)
        at
org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:56)


It looks like the required Jaxb jars are in the classpath (as configured in
the wsn-http-binding example), so I'm confused as to why the classloader
can't find this class.
-- 
View this message in context: http://www.nabble.com/Creating-PullPoints-using-WS-Notificatino-tf2154620.html#a5951887
Sent from the ServiceMix - User forum at Nabble.com.


Re: Creating PullPoints using WS-Notificatino

Posted by Guillaume Nodet <gn...@gmail.com>.
I was talking of deploying a SU to the component.
Take a look at the content of an example SU:
http://svn.apache.org/viewvc/incubator/servicemix/trunk/servicemix-wsn2005/src/test/resources/pullpoint/

On 8/29/06, KBerthelot <kb...@edgenet.com> wrote:
>
>
> I assume you mean invoking the CreatePullPoint operation from another jbi
> component as opposed to invoking it externally with a web service call to
> a
> bc...no, not yet, but I'll try that.
>
>
> gnodet wrote:
> >
> > Have you tried deploying a SU which would contain the CreatePullPoint
> > request ?
> > I will investigate the CNFE problem.
> >
> > On 8/29/06, KBerthelot <kb...@edgenet.com> wrote:
> >>
> >>
> >> I'm still trying to sort out ServiceMix support for
> WS-Notification.  We
> >> have
> >> a use case that requires remote service consumers to be intermittently
> >> disconnected from the network.  This requires that we implement a
> >> pull-style
> >> notification pattern to publish updates for the clients.  It seems that
> >> ServiceMix has the components in place to support this, but I haven't
> >> been
> >> able to put together a proof of concept to demonstrate that it
> works.  I
> >> don't mind trudging forward, but I guess I should first confirm that
> the
> >> ServiceMix WS-Notification implementation can support my use case.  Any
> >> feedback is much appreciated.
> >>
> >>
> >>
> >> KBerthelot wrote:
> >> >
> >> > I'm trying to prototype a WS-Notification client that uses a pull
> style
> >> > notification.  What I've done so far is to add another http:endpoint
> >> for
> >> > the CreatePullPoint service to xbean.xml in the wsn-http-binding
> >> example
> >> > so that it looks like:
> >> >
> >> > <?xml version="1.0"?>
> >> > <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> >> >        xmlns:wsn="http://servicemix.org/wsnotification">
> >> >
> >> >   <http:endpoint service="wsn:NotificationBroker"
> >> >                  endpoint="http-binding"
> >> >                  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>
> >> >
> >> >
> >> > I can then get the wsdl for CreatePullPoint using
> >> > http://localhost:8192/CreatePullPoint/main.wsdl which returns:
> >> >
> >> > <?xml version="1.0" encoding="UTF-8"?>
> >> > <wsdl:definitions
> >> targetNamespace="http://servicemix.org/wsnotification"
> >> > xmlns:tns="http://servicemix.org/wsnotification"
> >> > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> > xmlns:wsa="http://www.w3.org/2005/08/addressing"
> >> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> >> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> >> > xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
> >> > xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2"
> >> > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> >> > xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
> >> > xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
> >> > xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
> >> > xmlns:tnspt="http://docs.oasis-open.org/wsn/bw-2"
> >> > xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
> >> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> >> > xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2"
> >> > xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
> >> > xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
> >> > xmlns="http://schemas.xmlsoap.org/wsdl/">
> >> >   <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
> >> > location="porttypedef.wsdl"/>
> >> >   <wsdl:binding name="http-binding2Binding"
> >> type="wsntw:CreatePullPoint">
> >> >     <wsdlsoap:binding style="document"
> >> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >> >     <wsdl:operation name="CreatePullPoint">
> >> >       <wsdlsoap:operation soapAction=""/>
> >> >       <wsdl:input name="CreatePullPointRequest">
> >> >         <wsdlsoap:body use="literal"/>
> >> >       </wsdl:input>
> >> >
> >> >       <wsdl:output name="CreatePullPointResponse">
> >> >         <wsdlsoap:body use="literal"/>
> >> >       </wsdl:output>
> >> >       <wsdl:fault name="UnableToCreatePullPointFault">
> >> >         <wsdlsoap:fault name="UnableToCreatePullPointFault"
> >> > use="literal"/>
> >> >       </wsdl:fault>
> >> >     </wsdl:operation>
> >> >   </wsdl:binding>
> >> >   <wsdl:service name="CreatePullPoint">
> >> >
> >> >     <wsdl:port name="http-binding2"
> binding="tns:http-binding2Binding">
> >> >       <wsdlsoap:address
> >> > location="http://localhost:8192/CreatePullPoint/"/>
> >> >     </wsdl:port>
> >> >   </wsdl:service>
> >> > </wsdl:definitions>
> >> >
> >> >
> >> >
> >> > When I invoke the CreatePullPoint operation using this wsdl, I get
> this
> >> > exception:
> >> >
> >> > java.lang.RuntimeException: Could not create PullEndpoint
> >> >         at
> >> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java
> :58)
> >> >         at
> >> > org.apache.servicemix.wsn.jms.JmsCreatePullPoint.createPullPoint(
> >> JmsCreatePullPoint.java:43)
> >> >         at
> >> >
> >> org.apache.servicemix.wsn.AbstractCreatePullPoint.handleCreatePullPoint
> (
> >> AbstractCreatePullPoint.java:78)
> >> >         at
> >> > org.apache.servicemix.wsn.AbstractCreatePullPoint.createPullPoint(
> >> AbstractCreatePullPoint.java:70)
> >> >         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
> >> :136)
> >> >         at
> >> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> >> AsyncBaseLifeCycle.java:397)
> >> >         at
> >> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> >> BaseLifeCycle.java:42)
> >> >         at
> >> >
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> >> DeliveryChannelImpl.java:619)
> >> >         at
> >> > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> >> AbstractFlow.java:168)
> >> >         at
> >> >
> >> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(
> SedaFlow.java
> >> :175)
> >> >         at
> >> > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(
> SedaQueue.java
> >> :226)
> >> >         at
> >> > org.apache.geronimo.connector.work.WorkerContext.run(
> WorkerContext.java
> >> :291)
> >> >         at
> >> > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
> >> Source)
> >> >         at java.lang.Thread.run(Thread.java:595)
> >> > Caused by: javax.xml.bind.JAXBException
> >> >  - with linked exception:
> >> > [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory
> ]
> >> >         at
> >> > javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:195)
> >> >         at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
> >> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java
> :561)
> >> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java
> :508)
> >> >         at
> >> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java
> :56)
> >> >
> >> >
> >> > It looks like the required Jaxb jars are in the classpath (as
> >> configured
> >> > in the wsn-http-binding example), so I'm confused as to why the
> >> > classloader can't find this class.
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Creating-PullPoints-using-WS-Notificatino-tf2154620.html#a6041352
> >> Sent from the ServiceMix - User forum at Nabble.com.
> >>
> >>
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Creating-PullPoints-using-WS-Notification-tf2154620.html#a6046519
> Sent from the ServiceMix - User forum at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet

Re: Creating PullPoints using WS-Notificatino

Posted by KBerthelot <kb...@edgenet.com>.
I assume you mean invoking the CreatePullPoint operation from another jbi
component as opposed to invoking it externally with a web service call to a
bc...no, not yet, but I'll try that.


gnodet wrote:
> 
> Have you tried deploying a SU which would contain the CreatePullPoint
> request ?
> I will investigate the CNFE problem.
> 
> On 8/29/06, KBerthelot <kb...@edgenet.com> wrote:
>>
>>
>> I'm still trying to sort out ServiceMix support for WS-Notification.  We
>> have
>> a use case that requires remote service consumers to be intermittently
>> disconnected from the network.  This requires that we implement a
>> pull-style
>> notification pattern to publish updates for the clients.  It seems that
>> ServiceMix has the components in place to support this, but I haven't
>> been
>> able to put together a proof of concept to demonstrate that it works.  I
>> don't mind trudging forward, but I guess I should first confirm that the
>> ServiceMix WS-Notification implementation can support my use case.  Any
>> feedback is much appreciated.
>>
>>
>>
>> KBerthelot wrote:
>> >
>> > I'm trying to prototype a WS-Notification client that uses a pull style
>> > notification.  What I've done so far is to add another http:endpoint
>> for
>> > the CreatePullPoint service to xbean.xml in the wsn-http-binding
>> example
>> > so that it looks like:
>> >
>> > <?xml version="1.0"?>
>> > <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>> >        xmlns:wsn="http://servicemix.org/wsnotification">
>> >
>> >   <http:endpoint service="wsn:NotificationBroker"
>> >                  endpoint="http-binding"
>> >                  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>
>> >
>> >
>> > I can then get the wsdl for CreatePullPoint using
>> > http://localhost:8192/CreatePullPoint/main.wsdl which returns:
>> >
>> > <?xml version="1.0" encoding="UTF-8"?>
>> > <wsdl:definitions
>> targetNamespace="http://servicemix.org/wsnotification"
>> > xmlns:tns="http://servicemix.org/wsnotification"
>> > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
>> > xmlns:wsa="http://www.w3.org/2005/08/addressing"
>> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> > xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
>> > xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2"
>> > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>> > xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
>> > xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
>> > xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
>> > xmlns:tnspt="http://docs.oasis-open.org/wsn/bw-2"
>> > xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
>> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>> > xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2"
>> > xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
>> > xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
>> > xmlns="http://schemas.xmlsoap.org/wsdl/">
>> >   <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
>> > location="porttypedef.wsdl"/>
>> >   <wsdl:binding name="http-binding2Binding"
>> type="wsntw:CreatePullPoint">
>> >     <wsdlsoap:binding style="document"
>> > transport="http://schemas.xmlsoap.org/soap/http"/>
>> >     <wsdl:operation name="CreatePullPoint">
>> >       <wsdlsoap:operation soapAction=""/>
>> >       <wsdl:input name="CreatePullPointRequest">
>> >         <wsdlsoap:body use="literal"/>
>> >       </wsdl:input>
>> >
>> >       <wsdl:output name="CreatePullPointResponse">
>> >         <wsdlsoap:body use="literal"/>
>> >       </wsdl:output>
>> >       <wsdl:fault name="UnableToCreatePullPointFault">
>> >         <wsdlsoap:fault name="UnableToCreatePullPointFault"
>> > use="literal"/>
>> >       </wsdl:fault>
>> >     </wsdl:operation>
>> >   </wsdl:binding>
>> >   <wsdl:service name="CreatePullPoint">
>> >
>> >     <wsdl:port name="http-binding2" binding="tns:http-binding2Binding">
>> >       <wsdlsoap:address
>> > location="http://localhost:8192/CreatePullPoint/"/>
>> >     </wsdl:port>
>> >   </wsdl:service>
>> > </wsdl:definitions>
>> >
>> >
>> >
>> > When I invoke the CreatePullPoint operation using this wsdl, I get this
>> > exception:
>> >
>> > java.lang.RuntimeException: Could not create PullEndpoint
>> >         at
>> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:58)
>> >         at
>> > org.apache.servicemix.wsn.jms.JmsCreatePullPoint.createPullPoint(
>> JmsCreatePullPoint.java:43)
>> >         at
>> >
>> org.apache.servicemix.wsn.AbstractCreatePullPoint.handleCreatePullPoint(
>> AbstractCreatePullPoint.java:78)
>> >         at
>> > org.apache.servicemix.wsn.AbstractCreatePullPoint.createPullPoint(
>> AbstractCreatePullPoint.java:70)
>> >         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
>> :136)
>> >         at
>> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
>> AsyncBaseLifeCycle.java:397)
>> >         at
>> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
>> BaseLifeCycle.java:42)
>> >         at
>> > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
>> DeliveryChannelImpl.java:619)
>> >         at
>> > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
>> AbstractFlow.java:168)
>> >         at
>> >
>> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java
>> :175)
>> >         at
>> > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
>> :226)
>> >         at
>> > org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java
>> :291)
>> >         at
>> > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
>> Source)
>> >         at java.lang.Thread.run(Thread.java:595)
>> > Caused by: javax.xml.bind.JAXBException
>> >  - with linked exception:
>> > [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
>> >         at
>> > javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:195)
>> >         at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
>> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:561)
>> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)
>> >         at
>> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:56)
>> >
>> >
>> > It looks like the required Jaxb jars are in the classpath (as
>> configured
>> > in the wsn-http-binding example), so I'm confused as to why the
>> > classloader can't find this class.
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Creating-PullPoints-using-WS-Notificatino-tf2154620.html#a6041352
>> Sent from the ServiceMix - User forum at Nabble.com.
>>
>>
> 
> 
> -- 
> Cheers,
> Guillaume Nodet
> 
> 

-- 
View this message in context: http://www.nabble.com/Creating-PullPoints-using-WS-Notification-tf2154620.html#a6046519
Sent from the ServiceMix - User forum at Nabble.com.


Re: Creating PullPoints using WS-Notificatino

Posted by Guillaume Nodet <gn...@gmail.com>.
Have you tried deploying a SU which would contain the CreatePullPoint
request ?
I will investigate the CNFE problem.

On 8/29/06, KBerthelot <kb...@edgenet.com> wrote:
>
>
> I'm still trying to sort out ServiceMix support for WS-Notification.  We
> have
> a use case that requires remote service consumers to be intermittently
> disconnected from the network.  This requires that we implement a
> pull-style
> notification pattern to publish updates for the clients.  It seems that
> ServiceMix has the components in place to support this, but I haven't been
> able to put together a proof of concept to demonstrate that it works.  I
> don't mind trudging forward, but I guess I should first confirm that the
> ServiceMix WS-Notification implementation can support my use case.  Any
> feedback is much appreciated.
>
>
>
> KBerthelot wrote:
> >
> > I'm trying to prototype a WS-Notification client that uses a pull style
> > notification.  What I've done so far is to add another http:endpoint for
> > the CreatePullPoint service to xbean.xml in the wsn-http-binding example
> > so that it looks like:
> >
> > <?xml version="1.0"?>
> > <beans xmlns:http="http://servicemix.apache.org/http/1.0"
> >        xmlns:wsn="http://servicemix.org/wsnotification">
> >
> >   <http:endpoint service="wsn:NotificationBroker"
> >                  endpoint="http-binding"
> >                  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>
> >
> >
> > I can then get the wsdl for CreatePullPoint using
> > http://localhost:8192/CreatePullPoint/main.wsdl which returns:
> >
> > <?xml version="1.0" encoding="UTF-8"?>
> > <wsdl:definitions targetNamespace="http://servicemix.org/wsnotification"
> > xmlns:tns="http://servicemix.org/wsnotification"
> > xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> > xmlns:wsa="http://www.w3.org/2005/08/addressing"
> > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> > xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> > xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
> > xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2"
> > xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> > xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
> > xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
> > xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
> > xmlns:tnspt="http://docs.oasis-open.org/wsn/bw-2"
> > xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
> > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> > xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2"
> > xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
> > xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
> > xmlns="http://schemas.xmlsoap.org/wsdl/">
> >   <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
> > location="porttypedef.wsdl"/>
> >   <wsdl:binding name="http-binding2Binding"
> type="wsntw:CreatePullPoint">
> >     <wsdlsoap:binding style="document"
> > transport="http://schemas.xmlsoap.org/soap/http"/>
> >     <wsdl:operation name="CreatePullPoint">
> >       <wsdlsoap:operation soapAction=""/>
> >       <wsdl:input name="CreatePullPointRequest">
> >         <wsdlsoap:body use="literal"/>
> >       </wsdl:input>
> >
> >       <wsdl:output name="CreatePullPointResponse">
> >         <wsdlsoap:body use="literal"/>
> >       </wsdl:output>
> >       <wsdl:fault name="UnableToCreatePullPointFault">
> >         <wsdlsoap:fault name="UnableToCreatePullPointFault"
> > use="literal"/>
> >       </wsdl:fault>
> >     </wsdl:operation>
> >   </wsdl:binding>
> >   <wsdl:service name="CreatePullPoint">
> >
> >     <wsdl:port name="http-binding2" binding="tns:http-binding2Binding">
> >       <wsdlsoap:address
> > location="http://localhost:8192/CreatePullPoint/"/>
> >     </wsdl:port>
> >   </wsdl:service>
> > </wsdl:definitions>
> >
> >
> >
> > When I invoke the CreatePullPoint operation using this wsdl, I get this
> > exception:
> >
> > java.lang.RuntimeException: Could not create PullEndpoint
> >         at
> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:58)
> >         at
> > org.apache.servicemix.wsn.jms.JmsCreatePullPoint.createPullPoint(
> JmsCreatePullPoint.java:43)
> >         at
> > org.apache.servicemix.wsn.AbstractCreatePullPoint.handleCreatePullPoint(
> AbstractCreatePullPoint.java:78)
> >         at
> > org.apache.servicemix.wsn.AbstractCreatePullPoint.createPullPoint(
> AbstractCreatePullPoint.java:70)
> >         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
> :136)
> >         at
> > org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(
> AsyncBaseLifeCycle.java:397)
> >         at
> > org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(
> BaseLifeCycle.java:42)
> >         at
> > org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(
> DeliveryChannelImpl.java:619)
> >         at
> > org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(
> AbstractFlow.java:168)
> >         at
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java
> :175)
> >         at
> > org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java
> :226)
> >         at
> > org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java
> :291)
> >         at
> > EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown
> Source)
> >         at java.lang.Thread.run(Thread.java:595)
> > Caused by: javax.xml.bind.JAXBException
> >  - with linked exception:
> > [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
> >         at
> > javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:195)
> >         at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:561)
> >         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)
> >         at
> > org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:56)
> >
> >
> > It looks like the required Jaxb jars are in the classpath (as configured
> > in the wsn-http-binding example), so I'm confused as to why the
> > classloader can't find this class.
> >
>
> --
> View this message in context:
> http://www.nabble.com/Creating-PullPoints-using-WS-Notificatino-tf2154620.html#a6041352
> Sent from the ServiceMix - User forum at Nabble.com.
>
>


-- 
Cheers,
Guillaume Nodet

Re: Creating PullPoints using WS-Notificatino

Posted by KBerthelot <kb...@edgenet.com>.
I'm still trying to sort out ServiceMix support for WS-Notification.  We have
a use case that requires remote service consumers to be intermittently
disconnected from the network.  This requires that we implement a pull-style
notification pattern to publish updates for the clients.  It seems that
ServiceMix has the components in place to support this, but I haven't been
able to put together a proof of concept to demonstrate that it works.  I
don't mind trudging forward, but I guess I should first confirm that the
ServiceMix WS-Notification implementation can support my use case.  Any
feedback is much appreciated.



KBerthelot wrote:
> 
> I'm trying to prototype a WS-Notification client that uses a pull style
> notification.  What I've done so far is to add another http:endpoint for
> the CreatePullPoint service to xbean.xml in the wsn-http-binding example
> so that it looks like:
> 
> <?xml version="1.0"?>
> <beans xmlns:http="http://servicemix.apache.org/http/1.0"
>        xmlns:wsn="http://servicemix.org/wsnotification">
> 
>   <http:endpoint service="wsn:NotificationBroker"
>                  endpoint="http-binding"
>                  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>
> 
> 
> I can then get the wsdl for CreatePullPoint using
> http://localhost:8192/CreatePullPoint/main.wsdl which returns:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <wsdl:definitions targetNamespace="http://servicemix.org/wsnotification"
> xmlns:tns="http://servicemix.org/wsnotification"
> xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsa="http://www.w3.org/2005/08/addressing"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2"
> xmlns:wsrf-r="http://docs.oasis-open.org/wsrf/r-2"
> xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
> xmlns:wsn-bw="http://docs.oasis-open.org/wsn/bw-2"
> xmlns:wsn-brw="http://docs.oasis-open.org/wsn/brw-2"
> xmlns:wsn-b="http://docs.oasis-open.org/wsn/b-2"
> xmlns:tnspt="http://docs.oasis-open.org/wsn/bw-2"
> xmlns:wsrf-rw="http://docs.oasis-open.org/wsrf/rw-2"
> xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
> xmlns:wsrf-bf="http://docs.oasis-open.org/wsrf/bf-2"
> xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"
> xmlns:wsn-br="http://docs.oasis-open.org/wsn/br-2"
> xmlns="http://schemas.xmlsoap.org/wsdl/">
>   <wsdl:import namespace="http://docs.oasis-open.org/wsn/bw-2"
> location="porttypedef.wsdl"/>
>   <wsdl:binding name="http-binding2Binding" type="wsntw:CreatePullPoint">
>     <wsdlsoap:binding style="document"
> transport="http://schemas.xmlsoap.org/soap/http"/>
>     <wsdl:operation name="CreatePullPoint">
>       <wsdlsoap:operation soapAction=""/>
>       <wsdl:input name="CreatePullPointRequest">
>         <wsdlsoap:body use="literal"/>
>       </wsdl:input>
> 
>       <wsdl:output name="CreatePullPointResponse">
>         <wsdlsoap:body use="literal"/>
>       </wsdl:output>
>       <wsdl:fault name="UnableToCreatePullPointFault">
>         <wsdlsoap:fault name="UnableToCreatePullPointFault"
> use="literal"/>
>       </wsdl:fault>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="CreatePullPoint">
> 
>     <wsdl:port name="http-binding2" binding="tns:http-binding2Binding">
>       <wsdlsoap:address
> location="http://localhost:8192/CreatePullPoint/"/>
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>
> 
> 
> 
> When I invoke the CreatePullPoint operation using this wsdl, I get this
> exception:
> 
> java.lang.RuntimeException: Could not create PullEndpoint
>         at
> org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:58)
>         at
> org.apache.servicemix.wsn.jms.JmsCreatePullPoint.createPullPoint(JmsCreatePullPoint.java:43)
>         at
> org.apache.servicemix.wsn.AbstractCreatePullPoint.handleCreatePullPoint(AbstractCreatePullPoint.java:78)
>         at
> org.apache.servicemix.wsn.AbstractCreatePullPoint.createPullPoint(AbstractCreatePullPoint.java:70)
>         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:136)
>         at
> org.apache.servicemix.common.AsyncBaseLifeCycle.processExchange(AsyncBaseLifeCycle.java:397)
>         at
> org.apache.servicemix.common.BaseLifeCycle.onMessageExchange(BaseLifeCycle.java:42)
>         at
> org.apache.servicemix.jbi.messaging.DeliveryChannelImpl.processInBound(DeliveryChannelImpl.java:619)
>         at
> org.apache.servicemix.jbi.nmr.flow.AbstractFlow.doRouting(AbstractFlow.java:168)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaFlow.doRouting(SedaFlow.java:175)
>         at
> org.apache.servicemix.jbi.nmr.flow.seda.SedaQueue$1.run(SedaQueue.java:226)
>         at
> org.apache.geronimo.connector.work.WorkerContext.run(WorkerContext.java:291)
>         at
> EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(Unknown Source)
>         at java.lang.Thread.run(Thread.java:595)
> Caused by: javax.xml.bind.JAXBException
>  - with linked exception:
> [java.lang.ClassNotFoundException: com.sun.xml.bind.v2.ContextFactory]
>         at
> javax.xml.bind.ContextFinder.newInstance(ContextFinder.java:195)
>         at javax.xml.bind.ContextFinder.find(ContextFinder.java:381)
>         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:561)
>         at javax.xml.bind.JAXBContext.newInstance(JAXBContext.java:508)
>         at
> org.apache.servicemix.wsn.jms.JmsPullPoint.<init>(JmsPullPoint.java:56)
> 
> 
> It looks like the required Jaxb jars are in the classpath (as configured
> in the wsn-http-binding example), so I'm confused as to why the
> classloader can't find this class.
> 

-- 
View this message in context: http://www.nabble.com/Creating-PullPoints-using-WS-Notificatino-tf2154620.html#a6041352
Sent from the ServiceMix - User forum at Nabble.com.