Thank you Alberto,

your message was of great help, I looked up on the wsdl generated for
the second service and then used that information to set the options
with setAction("urn:publish"), I also set the SoapVersionURI to match
the one contained on the wsdl. After these changes the problem
disapeared.

Best regards

2007/11/30, Alberto Patino <[EMAIL PROTECTED]>:
> Hi!
>
> I got a similar problem under the same pattern you are trying to
> execute, and it was basically a problem related with WS-Addressing (
> The ServiceConfig  in the axis2 service it has WS-Addresing enabled by
> default, so when you create a Serviceclinet inside the server you are
> using the same ServiceConfig instantiated in the server). Please be
> sure that your second web service has a soapAction entry with a valid
> content. I fix this problem republishing the second web service after
> I added the soapActionEntry in my wsdl file. ( I do first contract
> development)
>
> Alberto Patino
>
> On 11/30/07, Maicon Stihler <[EMAIL PROTECTED]> wrote:
> > Well, even though I use the muse API to craft a notification message,
> > I don't use it to invoke the remote service. If I try to send the
> > notification message from a command line client it works fine, that's
> > why I have a feeling that I'm doing something wrong in the way I call
> > the service inside this first service.
> >
> > I'll make some tests with other kinds of services to make sure that
> > the problem isn't with Axis.
> >
> > thank you
> >
> > 2007/11/30, Martin Gainty <[EMAIL PROTECTED]>:
> > > 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]
> > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Don't be evil!!!
>
> ---------------------------------------------------------------------
> 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]

Reply via email to