Villalba, Gregorio, VF-ES (gvillal2) EXT wrote:
>Hi,
>
>I am developing a WS client with Axis2 code generator.
>I want to use dual transport, I engage the Addressing module and I
>configure the transport as dual but I can not change the ReplayTo
>element (that automatically appears like localhost)!!!!! It can not be
>changed with messageContext.setReplyTo(aERPReplayTo).
>
>Any idea?
>
>
hmm, seems like you are violating the MEP concept here.
Using Call means you are invoking an IN-OUT service. So when you send a
message using Call api, the reply MUST come back to the same Call. That
means you are not allowed to mess around with the replyTo. The engine
will set a dynamic replyTo address for you, which then starts up a
listener with the given transport, and listens to a message.
If you are allowed to set the replyTo, you could have set that to some
other EPR, and the Call which u used to invoke the service will timeout.
Thats why you are not allowed to set replyTo information.
So actually what you need to do is, invoke your IN-OUT web service using
IN-Only manner and set the replyTo address to wherever you want. That
means you basically have one client who thinks that this is an IN-Only
invocation and for another client who thinks that it is an OUT only service.
So this voids Axis2-284. So please close that issue too.
HTH.
-- Chinthaka
>Thanks in advance.
>
>
>That is the code:
>
>
> org.apache.axis2.context.MessageContext messageContext =
>getMessageContext();
>
> Call call = new Call(_serviceContext);
>
> call.setTo(this.toEPR);
>
> call.engageModule(new QName(Constants.MODULE_ADDRESSING));
>
> boolean DUAL_TRANSPORT = true;
> call.setTransportInfo(Constants.TRANSPORT_HTTP,
>Constants.TRANSPORT_HTTP,true);
>
> call.setWsaAction(myProp.getProperty("subscribe.action"));
> call.setSoapAction(myProp.getProperty("subscribe.action"));
> org.apache.axis2.soap.SOAPEnvelope env = createEnvelope();
> //Style is Doc
>
>setValueDoc(env,com.vodafone.jaw.ws.eventsource.databinding.SubscribeOpD
>atabindingSupporter.toOM(body));
>
> EndpointReference aERPReplayTo = new
>EndpointReference(AddressingConstants.WSA_REPLY_TO,myProp.getProperty("s
>ubscribe.replayto"));
> messageContext.setReplyTo(aERPReplayTo);
>
>messageContext.setMessageID(myProp.getProperty("msg_id_template") + new
>VMID().toString());
> messageContext.setEnvelope(env);
>
> call.invokeNonBlocking(operations[0], messageContext, callback);
>
>
>
>Confidencialidad
>Este correo electrónico y, en su caso, cualquier fichero anexo al mismo,
>contiene información de carácter confidencial exclusivamente dirigida a su
>destinatario o destinatarios y propiedad de Vodafone España. Queda prohibida
>su divulgación, copia o distribución a terceros sin la previa autorización
>escrita de Vodafone España, en virtud de la legislación vigente. En el caso de
>haber recibido este correo electrónico por error, se ruega notificar
>inmediatamente esta circunstancia mediante reenvío a la dirección electrónica
>del remitente y la destrucción del mismo.
>
>Confidentiality
>The information in this e-mail and in any attachments is classified as
>Vodafone España Confidential and Proprietary Information and solely for the
>attention and use of the named addressee(s). You are hereby notified that any
>dissemination, distribution or copy of this communication is prohibited
>without the prior written consent of Vodafone España and is s strictly
>prohibited by law. If you have received this communication in error, please,
>notify the sender by reply e-mail.
>
>
>