Hi Maicon This is a muse webapp ..did you contact the muse folks at [EMAIL PROTECTED]
? M-- ----- Original Message ----- From: "Maicon Stihler" <[EMAIL PROTECTED]> To: <axis-user@ws.apache.org> Sent: Friday, November 30, 2007 4:50 PM Subject: Re: [Axis2] Calling a service from another service > 2007/11/30, Martin Gainty <[EMAIL PROTECTED]>: > > Hi Maicon- > > > > 1)can we see the client code.. in particular the part which specifies the > > Action > The code is on the bottom of the email. > > > 2)Is there a reason why the client is not initiating all of the web service > > queries > I want the first service to notify this second service when being > invoked, this action must be transparent to the user because it's not > related to the application logic. > > Best regards, > Maicon > > obs: the code is really ugly, I just started to play with java+soap. > > This is the service that is called by the user, this service then > crafts a notification message and sends it to a second service. > > ----- code ---- > > import org.apache.axiom.om.OMAbstractFactory; > import org.apache.axiom.om.OMElement; > import org.apache.axiom.om.OMFactory; > import org.apache.axiom.om.OMNamespace; > import org.apache.axis2.Constants; > import org.apache.axis2.addressing.EndpointReference; > import org.apache.axis2.client.Options; > import org.apache.axis2.client.ServiceClient; > import org.apache.axis2.util.XMLUtils; > > import org.apache.muse.ws.notification.impl.SimpleNotificationMessage; > import org.apache.muse.ws.notification.NotificationMessage; > import org.apache.muse.util.xml.XmlUtils; > import org.w3c.dom.Element; > import org.apache.axiom.soap.SOAPFault; > > > > import javax.xml.namespace.QName; > > public class PEP { > > private static String PREFIX = "tns"; > private static String NAMESPACE_URI = "http://org.stihler.vo/guardian/wsn"; > private static QName TOPIC = new QName(NAMESPACE_URI, "PEP", PREFIX); > private static QName messageName = new QName(NAMESPACE_URI, > "PEPNotification", PREFIX); > > public OMElement invoke(OMElement element) throws Exception { > try { > > element.build(); > element.detach(); > > OMElement msg = createNotification("This is a simple > Notification Message"); > > element.addChild(publish(msg)); > > return element; > > } catch (org.apache.axis2.AxisFault e) { > java.io.BufferedWriter bw = > new java.io.BufferedWriter(new > java.io.FileWriter("/tmp/erros-axis.xml")); > bw.write(e.getMessage()); > bw.close(); > return element; > } > } > > private OMElement createNotification(String content) { > try { > org.apache.muse.ws.addressing.EndpointReference EventBoxEPR = > new org.apache.muse.ws.addressing.EndpointReference( > new > java.net.URI("http://localhost:8080/axis2/services/EventBox")); > > org.apache.muse.ws.addressing.EndpointReference ProducerEPR = > new org.apache.muse.ws.addressing.EndpointReference( > new java.net.URI("http://localhost:8080/axis2/services/PEP")); > > > NotificationMessage msg = new SimpleNotificationMessage(); > msg.setSubscriptionReference(EventBoxEPR); > msg.setProducerReference(ProducerEPR); > msg.setTopic(TOPIC); > > Element payload = XmlUtils.createElement(messageName, > content); > msg.addMessageContent(payload); > return XMLUtils.toOM( msg.toXML() ); > } > catch(Exception e) { > return null; > } > } > > private OMElement publish(OMElement msg) throws Exception{ > EndpointReference EventBoxEPR = > new EndpointReference( > "http://localhost:8080/axis2/services/EventBox"); > > Options options = new Options(); > options.setTo(EventBoxEPR); > options.setTransportInProtocol(Constants.TRANSPORT_HTTP); > ServiceClient sender = new ServiceClient(); > sender.setOptions(options); > OMElement rq = makeRequest(msg); > sender.sendReceive(rq); > return msg; > } > > private static OMElement makeRequest(OMElement payload) { > try { > OMFactory fac = OMAbstractFactory.getOMFactory(); > OMNamespace omNs = fac.createOMNamespace( > "http://org.stihler.vo/EventBox", "omNs"); > OMElement method = fac.createOMElement("publish", omNs); > method.addChild(payload); > return method; > } > catch(Exception e) { > return null; > } > } > > } > > --------------------------------------------------------------------- > 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]