I took the two sections of WSDL (what I sent + Andrew's binding and service) and pasted them into a .wsdl file. After I'd added a few prefix mappings to the root element, the resulting WSDL doc was this:
<wsdl:definitions name="MyConsumer" targetNamespace="http://www.example.com/my/consumer" xmlns:tns="http://www.example.com/my/consumer" xmlns:wsa="http://www.w3.org/2005/08/addressing" xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2" xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdl-soap="http://schemas.xmlsoap.org/wsdl/soap/"> <wsdl:types> <xsd:schema> <xsd:import namespace="http://docs.oasis-open.org/wsn/b-2" schemaLocation="WS-BaseNotification-1_3.xsd"/> </xsd:schema> </wsdl:types> <wsdl:message name="Notify"> <wsdl:part name="Notify" element="wsnt:Notify"/> </wsdl:message> <wsdl:portType name="NotificationConsumer"> <wsdl:operation name="Notify"> <wsdl:input wsa:Action="http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/NotifyRequest" message="tns:Notify" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="Binding" type="tns:NotificationConsumer"> <wsdl-soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/> <wsdl:operation name="Notify"> <wsdl-soap:operation/> <wsdl:input> <wsdl-soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="literal"/> </wsdl:input> </wsdl:operation> </wsdl:binding> <wsdl:service name="Service"> <wsdl:port binding="tns:Binding" name="Port"> <wsdl-soap:address location="http://127.0.0.1/consumer/services/MyConsumer"/> </wsdl:port> </wsdl:service> </wsdl:definitions> I ran the latest wsdl2java on this wsdl like so: > wsdl2java.bat -wsdl MyConsumer.wsdl -j2ee mini I get the warning message you describe, but that warning is just to let you know that there is no WSRP doc, since sometimes people *do* specify a WSRP doc, but they get the XML wrong and it doesn't get located. Anyway, the resulting muse.xml file that was generated in WebContent/WEB-INF/classes has the following entry: <desc:capability xmlns:desc="http://ws.apache.org/muse/descriptor"> <desc:capability-uri>http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer</desc:capability-uri> <desc:java-capability-class>org.apache.muse.ws.notification.impl.SimpleNotificationConsumer</desc:java-capability-class> </desc:capability> Which loads the WSN NotificationConsumer capability for the resource type. It's up to you to add message listener logic like that in the wsn-consumer sample (see ConsumerCapabilityImpl.java). If you have a capability with properties or operations, wsdl2java will generate code for it, and you can include your message listener hookup in those classes; if not, you need to write your own classes and add a <capability/> entry to muse.xml explicitly. An interesting feature idea might be to generate a no-properties-or-operations capability for users that have WSN Notify in their WSDLs. This capability would have a name indicating that it was just for setting up the logic needed to respond to incoming notifications. If anyone else thinks that's a good idea, please create a JIRA item for it so we can discuss. Dan "Callner, David A." <[EMAIL PROTECTED]> wrote on 03/23/2007 03:38:12 PM: > Andrew, > Thanks, but no code gets generated. I get a Warning that NoWSRPSchema. > I've played around with this wsdl a lot trying to get it to work. If I > do create a wsrf-rp:ResourceProperties="AnythingDefined" in the > portType then I get generated code, but that generated code is the same > as the Producer code and I want the Consumer Code. > > -----Original Message----- > From: Andrew Eberbach [mailto:[EMAIL PROTECTED] > Sent: Friday, March 23, 2007 3:10 PM > To: [email protected] > Subject: RE: Publisher Consumer > > Hi, > > Your WSDL needs to have a binding and service section. Here they are: > > <wsdl:binding name="Binding" type="tns:NotificationConsumer"> > <wsdl-soap:binding style="document" > transport="http://schemas.xmlsoap.org/soap/http"/> > <wsdl:operation name="Notify"> > <wsdl-soap:operation/> > <wsdl:input> > <wsdl-soap:body > encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" > use="literal"/> > </wsdl:input> > </wsdl:operation> > </wsdl:binding> > <wsdl:service name="Service"> > <wsdl:port binding="tns:Binding" name="Port"> > <wsdl-soap:address > location="http://127.0.0.1/notification/services/notification"/> > </wsdl:port> > </wsdl:service> > > > Thanks, > Andrew > > Andrew Eberbach > Autonomic Computing > (919) 254-2645 > T/L: 444-2645 > [EMAIL PROTECTED] > > > > "Callner, David A." <[EMAIL PROTECTED]> > 03/23/2007 01:37 PM > Please respond to > [email protected] > > > To > <[email protected]> > cc > > Subject > RE: Publisher Consumer > > > > > > > The following wsdl throws the exception below. I've tried it this way > before and got the exception below then I tried adding a ServiceName, > etc and I would get another exception. What do I need to have a > Consumer??? > > <?xml version="1.0" encoding="UTF-8"?> > <wsdl:definitions > targetNamespace="http://localhost.mitre.org/track-consumer" > xmlns:tns="http://localhost.mitre.org/track-consumer" > xmlns="http://schemas.xmlsoap.org/wsdl/" > xmlns:wsa="http://www.w3.org/2005/08/addressing" > xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" > > xmlns:wsdl-soap="http://schemas.xmlsoap.org/wsdl/soap/" > xmlns:xsd="http://www.w3.org/2001/XMLSchema" > xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2" > xmlns:wsntw="http://docs.oasis-open.org/wsn/bw-2" > name="Consumer"> > <wsdl:types> > <xsd:schema > elementFormDefault="qualified" > > targetNamespace="http://docs.oasis-open.org/wsn/b-2"> > <xsd:include > schemaLocation="WS-BaseNotification-1_3.xsd" /> > </xsd:schema> > </wsdl:types> > <!-- ========== NotificationProducer::GetCurrentMessage > =========== GetCurrentMessage(topicExpression) > returns: a NotificationMessage (xsd:any) --> > <wsdl:message name="Notify"> > <wsdl:part name="Notify" element="wsnt:Notify"/> > </wsdl:message> > > <wsdl:portType name="NotificationConsumer"> > <wsdl:operation name="Notify"> > <wsdl:input > wsa:Action="http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/No > tifyRequest" > > message="wsntw:Notify" > /> > > </wsdl:operation> > </wsdl:portType> > > </wsdl:definitions> > > java.lang.RuntimeException: [ID = 'OneServicePerWSDL'] The resource > inspector > can only process WSDLs with one service element. > at > org.apache.muse.tools.inspector.ResourceInspector.getPortType(ResourceI > nspector.java:619) > at > org.apache.muse.tools.inspector.ResourceInspector.run(ResourceInspector > .java:839) > at > org.apache.muse.tools.generator.analyzer.SimpleAnalyzer.inspect(SimpleA > nalyzer.java:392) > at > org.apache.muse.tools.generator.analyzer.SimpleAnalyzer.analyze(SimpleA > nalyzer.java:338) > at > org.apache.muse.tools.generator.Wsdl2Java.run(Wsdl2Java.java:143) > at > org.apache.muse.tools.generator.Wsdl2Java.main(Wsdl2Java.java:260) > > SEVERE: [ID = 'CodeGenFailed'] Code generation failed, see the > exception information below. > > An exception was caught: [ID = 'OneServicePerWSDL'] The resource > inspector can only process WSDLs with one service > element. > > > > > -----Original Message----- > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > Sent: Friday, March 23, 2007 11:41 AM > To: [email protected] > Subject: RE: Publisher Consumer > > The WSDL fragment below represents all of the code you need to provide > for > WSN Notify, save for the WSDL <binding/>. It's the same XML from > WS-BaseNotification-1_3.wsdl, which is used in the wsn-consumer > project. > > <wsdl:types> > <xsd:schema> > <xsd:import > namespace="http://docs.oasis-open.org/wsn/b-2" > schemaLocation="WS-BaseNotification-1_3.xsd"/> > </xsd:schema> > </wsdl:types> > > <wsdl:message name="Notify"> > <wsdl:part name="Notify" element="wsnt:Notify"/> > </wsdl:message> > > <wsdl:portType name="NotificationConsumer"> > <wsdl:operation name="Notify"> > <wsdl:input > > wsa:Action="http://docs.oasis-open.org/wsn/bw-2/NotificationConsumer/No > tifyRequest" > > message="wsntw:Notify" /> > </wsdl:operation> > </wsdl:portType> > > > > "Callner, David A." <[EMAIL PROTECTED]> wrote on 03/23/2007 11:03:44 > AM: > > > Dan, > > If you could just give me the wsdl you used to create the > wsn-consumer > > I should be able to figure it out from there. Why isn't that > > distributed in the examples? > > > > -----Original Message----- > > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > > Sent: Friday, March 23, 2007 11:00 AM > > To: [email protected] > > Subject: RE: Publisher Consumer > > > > Your attachments didn't come through - can create a JIRA item and > > attach > > the files there? > > > > Thanks, > > Dan > > > > > > > > "Callner, David A." <[EMAIL PROTECTED]> wrote on 03/23/2007 10:37:25 > > AM: > > > > > This doesn't seem to work for me. I've attached my files. I've > > > stripped them down to just have the Notify Consumer info that you > > > describe below but when I can get it to create the code it only > > creates > > > code like that of the producer. > > > > > > -----Original Message----- > > > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > > > Sent: Thursday, March 22, 2007 10:20 AM > > > To: [email protected] > > > Subject: Re: Publisher Consumer > > > > > > The wsn-consumer resource uses the NotificationConsumer portType in > > > > WS-BaseNotification-1_3.wsdl file - this is mapped in muse.xml, > under > > > the > > > <resource-type><wsdl> element. The sample has nothing but WSN > > > NotificationConsumer in its interface. > > > > > > All you need to do to add NotiifcationConsumer to your app is to > add > > > the > > > contents of NotificationConsumer portType (which is just the Notify > > > > operation) to your own WSDL's portType. Be sure to include the > > > <message/> > > > and XSD definition for Notify, just as WS-BaseNotification-1_3.wsdl > > > does. > > > When you run wsdl2java, it will notice the WSN Notify operation and > > add > > > > > > Muse's NOtificationConsumer capabilty to your resource definition. > > > > > > Dan > > > > > > > > > > > > "Callner, David A." <[EMAIL PROTECTED]> wrote on 03/22/2007 > 07:45:59 > > > AM: > > > > > > > There is an example of the wsn-producer and wsn-consumer. I > want > > to > > > > deploy a web service that is a producer and I want clients to be > > able > > > > to create wsn-consumer's on there own. Could somebody explain to > > me > > > > how the wsn-consumer was created? The wsdl for the wsn-producer > > does > > > > not show in a browser and I see no way to generate the code from > > the > > > > wsdl from the wsn-producer. I can generate the code for the > > > > wsn-producer from the wsdl, but how does one create a consumer. > Is > > > > everybody expected to start with a wsn-consumer and hack up there > > own > > > > wsn-consumers? This obviously can't be the case but I see no > other > > > > way. > > > > > > > > Thanks for your help. > > > > > > > > David Callner > > > > Senior Software Systems Engineer > > > > The MITRE Corporation > > > > Center for Advanced Aviation System Development > > > > 7515 Colshire Dr. > > > > McLean, VA. 22102 > > > > [EMAIL PROTECTED] > > > > 703.983.6431 (work) > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > > --------------------------------------------------------------------- > > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: [EMAIL PROTECTED] > > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
