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.
