axis-java-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Eran Chinthaka <chinth...@opensource.lk>
Subject Re: [Axis2] Asynchronous dual client
Date Tue, 18 Oct 2005 12:29:14 GMT


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


Mime
View raw message