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.
>
>  
>

Reply via email to