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.

Reply via email to