axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chathura Herath" <>
Subject RE: [Axis2] Deploying MessageReceivers per Operation
Date Thu, 21 Apr 2005 08:47:52 GMT
Hi Jaliya, Deepal, all


I think we haven't looked at the problem in the correct angle. MEP and
Operation have a one to many relation ship so it will not be right to say we
let each operation have its own message receiver, neither it is correct to
say we should have a message receivers per service because the MEP is
defined per operation.


Many Operation --> use--> One MEP


The problem that jaliya has pointed out is very valid and believe we need to
give proper attention. But we have missed out one salient point here. The
original MEP was an IN_ONLY MEP but since the operation requires secure
conversation the security module need to send out a message  and get a
message back.

The point in that in this case the security module has created a new
MEP(OUT_IN if you consider this EPR to be a server or it's the client side
of the IN_OUT MEP ) which is orthogonal to the original MEP IN_ONLY. Further
more now the endpoint has two parallel MEP's running 

1)       Original IN_ONLY MEP :- This will have a receiver - a

2)       OUT_IN MEP created by the security module :- This will have its own
receiver. (Like a normal client)


Now I believe there are no misunderstanding of having MessageReceivers
because above two message receivers will be provided and this operation and
the security module can use them. And any other service who has IN_ONLY MEP
can use the above message receiver. Am I right?


Complications come when you want to use the same transport to get everything
done. That we have to figure out a way to get the engine to reuse our old
same transport. 









From: Deepal Jayasinghe [] 
Sent: Thursday, April 21, 2005 10:30 AM
Subject: Re: [Axis2] Deploying MessageReceivers per Operation


Hi Jaliya;


I think we can handle operation basic receivers inside Message receiver ,
that is because when some one implement a service he has to write a
MessageReciver for his service  , so inside the messagereciver he can write
all the logic he needs to handle operation basis reciever , that is inside
messagereciver.recive() he can implement those logic.


as an example


MyReciver extends MessageReciver {


 public void recieve(MessageContext context){

    MyOperationReciever myop = new MyOperationReciever();






so if we do that in this way I think we do not need to define per operation
basis receivers. 


Comments ....  




Hi All,


According the current implementation of Axis2, when we deploy a service, we
can specify one MessageReceiver (InOnlyMessageReceiver, InOutMessageReceiver
etc..) per service. According to my understanding we should let the user to
register one MessageReceiver per operation basis. Possible example would be
as follows.


We have a web service with IN-ONLY operation. However we need to let the
service to implement the RequestSecurityToken operation according to the
WS-SecCon. This operation is an IN-OUT operation. In this situation we have
to register two message receivers to these two operations. In addition, the
MEP is bind to an operation and the MessageReceiver is the one who is
driving the MEP. So I think we have let each operation to have its own
message receiver. 


thoughts ??





View raw message