Muse's data transport is done thru HTTP. So a non-web app can send data to Muse as long as it has APIs for sending over HTTP. But, it won't work in the opposite way because Muse (or any other normal web app) can only send back data if your app has a URL and can receive data over HTTP.
What you will have to do is add a consumer resource to Muse. Then attach a capability class to that resource, and add your code in there to forward the data to your non-web app in whatever manner you choose, if not over HTTP. In order to forward Java Objects, you most likely will have to serialize them from the server, and deserialize on the client. By default, Muse can serialize to XML format. -----Original Message----- From: Callner, David A. [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 14, 2007 10:00 AM To: [email protected] Subject: RE: wsn-producer/consumer example No I do not want to write any HTTP server myself. I want to take the received SOAP messages from the consumer web service convert those into Java Objects and forward them to my non webapp. I can just create a socket and send it that way I was just hoping that maybe I could just use the MUSE API to do this since I can set up services from a non webapp. -----Original Message----- From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] Sent: Wednesday, February 14, 2007 12:57 PM To: [email protected] Subject: RE: wsn-producer/consumer example I don't see how you would receive the messages on a non-web app... unless you're writing your own little server and parsing the HTTP yourself. If that's the case, I'd advise you to rethink it - you can either use OSGi for your app (the -osgi flag in wsdl2java) or use embedded Tomcat to host the app (~5MB). Writing a decent HTTP server for one known client is easy - writing a robust HTTP server is quite hard. Dan "Callner, David A." <[EMAIL PROTECTED]> wrote on 02/14/2007 12:42:53 PM: > See below <DAC> > > -----Original Message----- > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > Sent: Wednesday, February 14, 2007 12:31 PM > To: [email protected] > Subject: RE: wsn-producer/consumer example > > The WsnTestClient should not be necessary in your real world scenario - > > it's just a driver to get the sample going. In your situation, you can > just have the consumer resource subscribe to the producer itself - the > code to do that would be very similar to what's in WsnTestClient (the > use of NotificationProducerClient), but you would package it in your > consumer resource instead of a command line app. You could perform the > subscription work in the initialize() method of one of your > capabilities on the consumer side. > > Alternatively, in a more complex scenario, you might have an > "orchestrator" service that is subscribing all of the consumers to the > events they need to handle. This scenario would be a lot like the > sample in that a third service would call subscribe() and tell the > producer which consumer resource to send the messages to. This is just > like the WsnTestClient app, except it would probably be a web service > as well. > > If you want to forward messages received by one consumer to another > consumer(s), like a broker would, you just have to use the > NotificationMessageListener API - you can implement a listener that > listens for all notifications and then uses NotificationConsumerClient > to > forward the messages to other resources. > > <DAC> Can I have a broker service that would subscribe (NON > WEB)consumer's. > I want to have a consumer web service that just forwards messages > from the webapp > (broker) to nonwebapp (consumers). Can I do this with the > NotificationMessageListener and NotificationConsumerClient or do I > need to use another means to forward > messages from a webapp to a > Non webapp. I ask because I'm able to connect two webservices together > from a non webapp. Thanks again for > all you help. > > Dan > > > > "Callner, David A." <[EMAIL PROTECTED]> wrote on 02/13/2007 09:36:37 > AM: > > > Ok thanks. Let's say for instance that I have two different types of > > clients. One type of clients that are within the same firewall as my > > web server and are on the same network. The other is a client that > is > > outside the firewall and not on the same network. I can see that the > > later would need a consumer web service running and the incoming > > requests would have to be forwarded to the user of the consumer web > > service. > > > > First question, when I use the API's to create the subscription > between > > the publisher and consumer are there methods I can call that would > > subscribe from the consumer to the (WsnTestClient) a forwarded > message > > or is this something I have to do manually i.e create a socket from > the > > consumer to the WsnTestClient or is this already built into > MUSE/AXIS? > > > > > > Second question, when I am within the same network is there a way for > > me to set up a publisher/consumer without creating a consumer web > > service or is this not what is intended with MUSE and I would still > > need a consumer web server and some mechanism to forward messages > from > > the consumer web service to the (WsnTestClient). > > > > Thanks again for all your answers and help!! > > > > > > -----Original Message----- > > From: Vinh Nguyen (vinguye2) [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, February 07, 2007 1:04 PM > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > Each resource must be a web service resource with a URI address that > > identifies its location. So your consumer cannot be a java program > > sitting outside of a webserver environment. What you can do is have > a > > consumer resource which routes calls to your java program. > > > > > > -----Original Message----- > > From: Callner, David A. [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, February 07, 2007 7:21 AM > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > Makes sense. I would like to set up a publisher / consumer service > > were the publish is a web service and the consumer is java program > > (no web server running). Is this possible? > > > > -----Original Message----- > > From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] > > Sent: Wednesday, February 07, 2007 10:17 AM > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > I'm not really sure, if I understand your initial question, so I'll > try > > to explain it based on the assumption, that it's unclear why you need > > to > > deploy 2 servlets to make the sample work. > > > > > > For the producer/consumer example, they're mimicking a service > > (producer) on a separate machine, which will inform the client > machine > > (consumer) about changes in its state via a WSDM SOAP message. > > The WsnTestClient-file is just setting up the subscription between > the > > producer/consumer via the SubscriptionManager. > > The actual consumer is the ConsumerCapability/ConsumerCapabilityImpl. > > > > As for the error you're getting, I'm not sure if you deployed both > the > > producer/consumer wars given the earlier assumption I made. But it > > seems that your WsnTestClient is trying to subscribe to your > > producer > service > > and getting denied as the service is not available at the specified > > location (according to the WsnTestClient.java property and the > involved > > WSDL-files). > > > > I don't have a clue yet about the error from you Tomcat log files. > > > > > > Not really sure if this made any sense. > > > > -----Original Message----- > > From: Callner, David A. [mailto:[EMAIL PROTECTED] > > Sent: 07 February 2007 13:43 > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > I'm using the official release and have performed step 2 and here are > > the errors I'm getting. Also could someone explain to me why I need > to > > run to web servlets (Wsn-Producer) and (Wsn-Consumer). The > > WsnTestClient should be the "Consumer". > > > > In my tomcat5 log file: > > > > 2007-02-07 08:34:31 StandardWrapperValve[ApacheMuseServlet]: > > Servlet.service() for servlet ApacheMuseServlet threw exception > > java.lang.NoSuchMethodError: javax.xml.namespace.QName: method > > <init>(Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V not > > found > > at > > > org.apache.muse.ws.addressing.soap.SoapConstants.<clinit>(SoapConstants > > .java:46) > > at > > > org.apache.muse.ws.addressing.soap.SoapFault.<init>(SoapFault.java:40) > > at > > > org.apache.muse.ws.addressing.soap.SoapUtils.convertToFault(SoapUtils.j > > ava:32) > > at > > > org.apache.muse.core.platform.AbstractIsolationLayer.initialize(Abstrac > > tIsolationLayer.java:183) > > at > > > org.apache.muse.core.platform.mini.MiniServlet.createIsolationLayer(Min > > iServlet.java:36) > > at > > > org.apache.muse.core.platform.mini.MiniServlet.doPost(MiniServlet.java: > > 50) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) > > at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) > > at > > > org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Applic > > ationFilterChain.java:237) > > at > > > org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFil > > terChain.java:157) > > at > > > org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVal > > ve.java:214) > > at > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveC > > ontext.java:104) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > > 520) > > at > > > org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCo > > ntextValve.java:198) > > at > > > org.apache.catalina.core.StandardContextValve.invoke(StandardContextVal > > ve.java:152) > > at > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveC > > ontext.java:104) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > > 520) > > at > > > org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.jav > > a:137) > > at > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveC > > ontext.java:104) > > at > > > org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.jav > > a:118) > > at > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveC > > ontext.java:102) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > > 520) > > at > > > org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve > > .java:109) > > at > > > org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveC > > ontext.java:104) > > at > > > org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java: > > 520) > > at > > org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > > at > > > org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) > > at > > > org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:7 > > 99) > > at > > > org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process > > Connection(Http11Protocol.java:705) > > at > > > org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:5 > > 77) > > at > > > org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPoo > > l.java:683) > > at java.lang.Thread.run(Thread.java:570) > > > > > > Output from WsnTestClient: > > > > CLIENT TRACE] SOAP envelope contents (outgoing): > > > > <soap:Envelope xmlns:soap="http://www.w3.org/2003/05/soap-envelope"> > > <soap:Header> > > <wsa:To > > > xmlns:wsa="http://www.w3.org/2005/08/addressing">http://128.29.35.11:80 > > 80/wsn-producer/services/WsResource</wsa:To> > > <wsa:Action > > > xmlns:wsa="http://www.w3.org/2005/08/addressing">http://docs.oasis-open > > .org/wsn/bw-2/NotificationProducer/SubscribeRequest</wsa:Action> > > <wsa:MessageID > > > xmlns:wsa="http://www.w3.org/2005/08/addressing">uuid:1c80b0af-b583-736 > > f-066b-ff60b581802c</wsa:MessageID> > > <wsa:From xmlns:wsa="http://www.w3.org/2005/08/addressing"> > > > > > <wsa:Address>http://www.w3.org/2005/08/addressing/role/anonymous</wsa:A > > ddress> > > </wsa:From> > > </soap:Header> > > <soap:Body> > > <wsnt:Subscribe > > xmlns:wsnt="http://docs.oasis-open.org/wsn/b-2"> > > <wsnt:ConsumerReference> > > <wsa:Address > > > xmlns:wsa="http://www.w3.org/2005/08/addressing">http://128.29.35.11:80 > > 80/wsn-consumer/services/consumer</wsa:Address> > > </wsnt:ConsumerReference> > > </wsnt:Subscribe> > > </soap:Body> > > </soap:Envelope> > > > > org.apache.muse.ws.addressing.soap.SoapFault: Server returned HTTP > > response code: 500 for URL: > > http://128.29.35.11:8080/wsn-producer/services/WsResource > > at > > > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClie > > nt.java:279) > > at > > > org.apache.muse.core.AbstractResourceClient.invoke(AbstractResourceClie > > nt.java:235) > > at > > > org.apache.muse.ws.notification.remote.NotificationProducerClient.subsc > > ribe(NotificationProducerClient.java:96) > > at org.apache.muse.test.wsn.WsnTestClient.main(Unknown > Source) > > > > -----Original Message----- > > From: Rosberg Mattias [mailto:[EMAIL PROTECTED] > > Sent: Tuesday, February 06, 2007 4:14 AM > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > Thank you for your support. I downloaded the nightly build and ran > > update_install.bat. The wsn-producer/consumer example worked at once. > > > > /Mattias > > > > > > -----Original Message----- > > From: Daniel Jemiolo [mailto:[EMAIL PROTECTED] > > Sent: Mon 2/5/2007 3:18 PM > > To: [email protected] > > Subject: RE: wsn-producer/consumer example > > > > Good catch on the port number - make sure the port you're using for > > Tomcat uses the one that's specified in the WsnTestClient.java > client. > > The port is part of the wsa:Address in the producer and consumer > EPRs, > > so if it's wrong, you need to change it (you can do this on the > command > > line or by > > > > modifying the test client code). > > > > I'd also advise against building the source and trying to add the > > latest bits incrementally - if you want to do a full build, follow > > the instructions on: > > > > http://ws.apache.org/muse/source-code.html > > > > If you want the latest nightly build, you can get it here: > > > > http://ws.apache.org/muse/nightly/latest > > > > Of course, except for the "step 2" that was added, neither of those > > samples has changed in quite a while. You should be able to get them > > working by taking the official release and performing step 2 - let me > > know if the port number issue was indeed the problem. > > > > Dan > > > > > > > > <[EMAIL PROTECTED]> wrote on 02/05/2007 08:48:58 AM: > > > > > I'm not sure why you would want to make the whole thing that > > > complicated. > > > I seem to have no problem getting the producer/consumer example to > > work > > > with these simple steps. > > > > > > 1) Download the nightly build (with the latest bug fixes) from > > > http://ws.apache.org/muse/nightly/latest/bin/ > > > > > > 2) Run update-install > > > > > > 3) Double-check the WsResourcePort in the WsResource.wsdl > > (wsn-producer) > > > and the WsnTestClient portType properties (producer_port & > > > consumer_port) are pointing to the right serviceport (according to > > your > > > Tomcat specs). > > > > > > 4) Use the ant build file to build both project-wars > > > > > > 5) Deploy and enjoy > > > > > > But that said did you have a look in the wsn-consumer > > WsnTestClient.java > > > and the wsn-producer WsREsource.wsdl to see if the portTypes match > > your > > > Tomcat setup? To me it sounds like it's looking for a consumer > that's > > > > > not listening on the given port. I could be wrong. > > > > > > I know the portTypes have been a cause of some of my problems in > the > > > past. > > > > > > /Lenni > > > > > > -----Original Message----- > > > From: Rosberg Mattias [mailto:[EMAIL PROTECTED] > > > Sent: 05 February 2007 12:59 > > > To: [email protected] > > > Subject: RE: wsn-producer/consumer example > > > > > > If you follow the instructions for "Eclipse Development" described > > here > > > > > > http://ws.apache.org/muse/source-code.html > > > > > > you get a separate project in Eclipse for every muse jar-file. You > > can > > > then export each project as a jar-file and replace the ones found > in > > > your MUSE_HOME/modules subdirectories. This way you get the latest > > > bugfixes and updates. > > > > > > -----Original Message----- > > > From: Callner, David A. [mailto:[EMAIL PROTECTED] > > > Sent: Mon 2/5/2007 1:45 PM > > > To: [email protected] > > > Subject: RE: wsn-producer/consumer example > > > > > > You seemed to get farther than I did with the example. I been able > > to > > > find on the internet that you need to add (#2) below, but your #3. > > > Created new snapshot from SVN. Could you explain? > > > > > > -----Original Message----- > > > From: Rosberg Mattias [mailto:[EMAIL PROTECTED] > > > Sent: Monday, February 05, 2007 2:40 AM > > > To: [email protected] > > > Subject: wsn-producer/consumer example > > > > > > I have tried to get the wsn-producer/consumer sample to work > without > > > success. I have done the following: > > > > > > 1. Downloaded 2.1.0 distribution and ran update_install. > > > > > > 2. Added row <resource-type use-router-persistence="true"> in > > > wsn-consumer muse.xml > > > > > > 3. Created new muse.xxx-snapshot-2.2.0.jars from SVN. Replaced old > > > (2.1.0) jars in modules folders with snapshot 2.2.0 jars. > > > > > > 4. Rebuild wars for wsn-consumer and wsn-producer. > > > > > > 5. Deploy wars on Tomcat without any error messages. Run > > WsnTestClient > > > > > > I still get the following error: > > > > > > INFO: [ID = 'LastPublishFailed'] The last notification published > via > > > wsnt:Notify failed to reach its destination. The consumer may be > > > unavailable. > > The > > > original > > > error was: null > > > 2007-feb-05 08:17:37 > org.apache.ws.muse.test.wsrf.MyCapabilityImpl$1 > > > run > > > INFO: Waiting 10 seconds before sending message... > > > > > > Any ideas? > > > > > > /Mattias > > > > > > > > > > --------------------------------------------------------------------- > > > 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] > --------------------------------------------------------------------- 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]
