You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-user@axis.apache.org by murugess <ms...@gmail.com> on 2008/08/28 01:56:19 UTC

Want to use the same message receiver for all operations!!

I want the same message reciever to be invoked for a service regardless of
whatever the soap action comes in the request. Basically I am trying to
simulate a servlet which will get all the requests targeted to it. I dont
have any service implementation class and no wsdl in the services folder. 

Here is what I have in services.xml:

    <service >
        <messageReceivers>
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="com.xyz.GenericMessageReceiverInOut"/>
        </messageReceivers>
   		           
    </service>


I can't put any opertions name as I want the same
GenericMessageReceiverInOut to be invoked for all operations  ( or requests
with any soapaction or wsa action).


When I send the request using a client, I get following exception:

<Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for the
Operation not found is
http://localhost:8080/CRMGWServer/services/GenericFeedService and the WSA
Action = null&#xd;
	at
org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
	at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
	at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;


I really appreciate if any one can point me to the right solution. I wish i
could put wild card character (*) in the operation tag inside services.xml.



-- 
View this message in context: http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Want to use the same message receiver for all operations!!

Posted by Amila Suriarachchi <am...@gmail.com>.
On Fri, Aug 29, 2008 at 5:47 AM, Eran Chinthaka <er...@gmail.com>wrote:

> This is an interesting scenario.
>
> Axis2, by design, requires every message to be associated with a service
> and an operation. And this is checked in the dispatching phase. If you don't
> have operations defined, then you might have to hack a little bit. IIRC, you
> can now add handlers before the dispatching phase.
>
> I'm forwarding this message to dev list also, so that people over there
> knows better than I do about this.
>

try something like this

<service name="POJOService">
        <messageReceivers>
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="test.kp.service.POJOServiceMessageReceiverInOut"/>
        </messageReceivers>
        <parameter name="supportSingleOperation">true</parameter>
        <operation name="echoPerson" mep="http://www.w3.org/ns/wsdl/in-out"
namespace="http://service.kp.test">
            <actionMapping>urn:echoPerson</actionMapping>
        </operation>
    </service>

Here when you set supportSingleOperation it dispatch it to any available
operation. regardless of the
soap action.

thanks,
Amila.

>
>
> Thanks,
> Chinthaka
>
>
> On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:
>
>>
>> Hi Chinthaka,
>>    Really appreciate your quick reply. yes, I am trying to tackle the
>> second case where in all the requests directed to the service regardless
>> of
>> operation should go to the same reciever. Basically, I have a servlet
>> which
>> recieves all the soap requests sent through http. This servlet will
>> receive
>> all the requests sent to a given url ( say http://www.foo.com/abc/servlet
>> )
>> with any soap action header. Now, I am trying to replace this servlet with
>> axis2. I want to deal directly with XML using axiom apis and avoid
>> marshalling and de marshalling of xmls to java objects.
>>    As per my understanding, and by what you explained, axis2 dispatcher
>> identifies the service and the operation name and then finds the
>> corresponding entry in the services.xml.  Since, I don't have any
>> operations
>> specified in the services.xml, it throws up an error.
>>    What kind of handler should I write in order to avoid the above error?
>>
>> Thanks,
>> Sanjay
>>
>>
>> Eran Chinthaka-3 wrote:
>> >
>> > Do you want to get all the message related to a given service in to one
>> > message receiver? Or is it that you want to get all the messages,
>> > irrespective of the service to get to one message receiver?
>> >
>> > If it is the first case, then register one message receiver class name
>> for
>> > all the MEPs.
>> >
>> > IIRC, this is how Axis2 internals work. When you get a SOAP message, we
>> > will
>> > first identify the service and the operation this message is going to.
>> > Every
>> > operation is connected to a MEP (http://wso2.org/library/335), and a
>> > message
>> > receiver is also bound to a message receiver for a given service. One
>> the
>> > operation and the service is found, service.xml details are used to
>> > retrieve
>> > the message receiver connected to the MEP of that operation.
>> >
>> > If it is the second case, then you might have to write a handler to do
>> > this.
>> >
>> >
>> > HTH.
>> > Chinthaka
>> >
>> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
>> >
>> >>
>> >> I want the same message reciever to be invoked for a service regardless
>> >> of
>> >> whatever the soap action comes in the request. Basically I am trying to
>> >> simulate a servlet which will get all the requests targeted to it. I
>> dont
>> >> have any service implementation class and no wsdl in the services
>> folder.
>> >>
>> >> Here is what I have in services.xml:
>> >>
>> >>    <service >
>> >>        <messageReceivers>
>> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
>> >> class="com.xyz.GenericMessageReceiverInOut"/>
>> >>        </messageReceivers>
>> >>
>> >>    </service>
>> >>
>> >>
>> >> I can't put any opertions name as I want the same
>> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
>> >> requests
>> >> with any soapaction or wsa action).
>> >>
>> >>
>> >> When I send the request using a client, I get following exception:
>> >>
>> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for
>> >> the
>> >> Operation not found is
>> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and the
>> WSA
>> >> Action = null&#xd;
>> >>        at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>> >>
>> >>
>> >> I really appreciate if any one can point me to the right solution. I
>> wish
>> >> i
>> >> could put wild card character (*) in the operation tag inside
>> >> services.xml.
>> >>
>> >>
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
>> >> Sent from the Axis - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> >> For additional commands, e-mail: axis-user-help@ws.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > With Mettha,
>> > Eran Chinthaka
>> >
>> > --------------------------------------------------------------------
>> > Health is the greatest gift; contentment is the greatest wealth;
>> trusting
>> > is
>> > the best relationship; nirvana is the highest joy. - Dhammapada
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>
>
> --
> With Mettha,
> Eran Chinthaka
>
> --------------------------------------------------------------------
> Health is the greatest gift; contentment is the greatest wealth; trusting
> is the best relationship; nirvana is the highest joy. - Dhammapada
>



-- 
Amila Suriarachchi,
WSO2 Inc.

Re: Want to use the same message receiver for all operations!!

Posted by Saminda Abeyruwan <sa...@gmail.com>.
As Synapse guys are doing, one could  write a custom dispatcher to dispatch
all request to a specific service with a custom MR given.

Saminda

On Mon, Sep 1, 2008 at 6:00 AM, Amila Suriarachchi <
amilasuriarachchi@gmail.com> wrote:

> Resending this seems to be problem with my mail client. Please ignore if
> already received.
>
> try something like this
>
> <service name="POJOService">
>         <messageReceivers>
>             <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> class="test.kp.service.POJOServiceMessageReceiverInOut"/>
>         </messageReceivers>
>         <parameter name="supportSingleOperation">true</parameter>
>         <operation name="echoPerson" mep="http://www.w3.org/ns/wsdl/in-out"
> namespace="http://service.kp.test">
>             <actionMapping>urn:echoPerson</actionMapping>
>         </operation>
>     </service>
>
> Here when you set supportSingleOperation it dispatch it to any available
> operation. regardless of the
> soap action.
>
> thanks,
> Amila.
>
>
> On Fri, Aug 29, 2008 at 8:50 PM, murugess <ms...@gmail.com> wrote:
>
>>
>> Thanks Chinthaka. I am so glad to see active participation from axis2 team
>> in
>> this forum.
>>   I feel many folks might be having this requirement wherein they want to
>> write a single gateway service that recieves all the requests and then
>> dispatches it to the right handler dynamically. This gateway service need
>> not be changed each time a new handler ( operation) is added. It should by
>> default recieve all the requests directed to it.
>> I am waiting to hear from dev team.
>>
>> Regards,
>> Sanjay
>>
>>
>>
>> Eran Chinthaka-3 wrote:
>> >
>> > This is an interesting scenario.
>> >
>> > Axis2, by design, requires every message to be associated with a service
>> > and
>> > an operation. And this is checked in the dispatching phase. If you don't
>> > have operations defined, then you might have to hack a little bit. IIRC,
>> > you
>> > can now add handlers before the dispatching phase.
>> >
>> > I'm forwarding this message to dev list also, so that people over there
>> > knows better than I do about this.
>> >
>> > Thanks,
>> > Chinthaka
>> >
>> > On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:
>> >
>> >>
>> >> Hi Chinthaka,
>> >>    Really appreciate your quick reply. yes, I am trying to tackle the
>> >> second case where in all the requests directed to the service
>> regardless
>> >> of
>> >> operation should go to the same reciever. Basically, I have a servlet
>> >> which
>> >> recieves all the soap requests sent through http. This servlet will
>> >> receive
>> >> all the requests sent to a given url ( say
>> >> http://www.foo.com/abc/servlet)
>> >> with any soap action header. Now, I am trying to replace this servlet
>> >> with
>> >> axis2. I want to deal directly with XML using axiom apis and avoid
>> >> marshalling and de marshalling of xmls to java objects.
>> >>    As per my understanding, and by what you explained, axis2 dispatcher
>> >> identifies the service and the operation name and then finds the
>> >> corresponding entry in the services.xml.  Since, I don't have any
>> >> operations
>> >> specified in the services.xml, it throws up an error.
>> >>    What kind of handler should I write in order to avoid the above
>> error?
>> >>
>> >> Thanks,
>> >> Sanjay
>> >>
>> >>
>> >> Eran Chinthaka-3 wrote:
>> >> >
>> >> > Do you want to get all the message related to a given service in to
>> one
>> >> > message receiver? Or is it that you want to get all the messages,
>> >> > irrespective of the service to get to one message receiver?
>> >> >
>> >> > If it is the first case, then register one message receiver class
>> name
>> >> for
>> >> > all the MEPs.
>> >> >
>> >> > IIRC, this is how Axis2 internals work. When you get a SOAP message,
>> we
>> >> > will
>> >> > first identify the service and the operation this message is going
>> to.
>> >> > Every
>> >> > operation is connected to a MEP (http://wso2.org/library/335), and a
>> >> > message
>> >> > receiver is also bound to a message receiver for a given service. One
>> >> the
>> >> > operation and the service is found, service.xml details are used to
>> >> > retrieve
>> >> > the message receiver connected to the MEP of that operation.
>> >> >
>> >> > If it is the second case, then you might have to write a handler to
>> do
>> >> > this.
>> >> >
>> >> >
>> >> > HTH.
>> >> > Chinthaka
>> >> >
>> >> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
>> >> >
>> >> >>
>> >> >> I want the same message reciever to be invoked for a service
>> >> regardless
>> >> >> of
>> >> >> whatever the soap action comes in the request. Basically I am trying
>> >> to
>> >> >> simulate a servlet which will get all the requests targeted to it. I
>> >> dont
>> >> >> have any service implementation class and no wsdl in the services
>> >> folder.
>> >> >>
>> >> >> Here is what I have in services.xml:
>> >> >>
>> >> >>    <service >
>> >> >>        <messageReceivers>
>> >> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
>> >> >> class="com.xyz.GenericMessageReceiverInOut"/>
>> >> >>        </messageReceivers>
>> >> >>
>> >> >>    </service>
>> >> >>
>> >> >>
>> >> >> I can't put any opertions name as I want the same
>> >> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
>> >> >> requests
>> >> >> with any soapaction or wsa action).
>> >> >>
>> >> >>
>> >> >> When I send the request using a client, I get following exception:
>> >> >>
>> >> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR)
>> >> for
>> >> >> the
>> >> >> Operation not found is
>> >> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and
>> the
>> >> WSA
>> >> >> Action = null&#xd;
>> >> >>        at
>> >> >>
>> >> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>> >> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>> >> >>        at
>> >> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>> >> >>        at
>> >> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>> >> >>
>> >> >>
>> >> >> I really appreciate if any one can point me to the right solution. I
>> >> wish
>> >> >> i
>> >> >> could put wild card character (*) in the operation tag inside
>> >> >> services.xml.
>> >> >>
>> >> >>
>> >> >>
>> >> >> --
>> >> >> View this message in context:
>> >> >>
>> >>
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
>> >> >> Sent from the Axis - User mailing list archive at Nabble.com.
>> >> >>
>> >> >>
>> >> >>
>> ---------------------------------------------------------------------
>> >> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> >> >> For additional commands, e-mail: axis-user-help@ws.apache.org
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >> > --
>> >> > With Mettha,
>> >> > Eran Chinthaka
>> >> >
>> >> > --------------------------------------------------------------------
>> >> > Health is the greatest gift; contentment is the greatest wealth;
>> >> trusting
>> >> > is
>> >> > the best relationship; nirvana is the highest joy. - Dhammapada
>> >> >
>> >> >
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
>> >> Sent from the Axis - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> >> For additional commands, e-mail: axis-user-help@ws.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > With Mettha,
>> > Eran Chinthaka
>> >
>> > --------------------------------------------------------------------
>> > Health is the greatest gift; contentment is the greatest wealth;
>> trusting
>> > is
>> > the best relationship; nirvana is the highest joy. - Dhammapada
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19221987.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>
>
> --
> Amila Suriarachchi,
> WSO2 Inc.
>

Re: Want to use the same message receiver for all operations!!

Posted by Amila Suriarachchi <am...@gmail.com>.
Resending this seems to be problem with my mail client. Please ignore if
already received.

try something like this

<service name="POJOService">
        <messageReceivers>
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="test.kp.service.POJOServiceMessageReceiverInOut"/>
        </messageReceivers>
        <parameter name="supportSingleOperation">true</parameter>
        <operation name="echoPerson" mep="http://www.w3.org/ns/wsdl/in-out"
namespace="http://service.kp.test">
            <actionMapping>urn:echoPerson</actionMapping>
        </operation>
    </service>

Here when you set supportSingleOperation it dispatch it to any available
operation. regardless of the
soap action.

thanks,
Amila.


On Fri, Aug 29, 2008 at 8:50 PM, murugess <ms...@gmail.com> wrote:

>
> Thanks Chinthaka. I am so glad to see active participation from axis2 team
> in
> this forum.
>   I feel many folks might be having this requirement wherein they want to
> write a single gateway service that recieves all the requests and then
> dispatches it to the right handler dynamically. This gateway service need
> not be changed each time a new handler ( operation) is added. It should by
> default recieve all the requests directed to it.
> I am waiting to hear from dev team.
>
> Regards,
> Sanjay
>
>
>
> Eran Chinthaka-3 wrote:
> >
> > This is an interesting scenario.
> >
> > Axis2, by design, requires every message to be associated with a service
> > and
> > an operation. And this is checked in the dispatching phase. If you don't
> > have operations defined, then you might have to hack a little bit. IIRC,
> > you
> > can now add handlers before the dispatching phase.
> >
> > I'm forwarding this message to dev list also, so that people over there
> > knows better than I do about this.
> >
> > Thanks,
> > Chinthaka
> >
> > On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:
> >
> >>
> >> Hi Chinthaka,
> >>    Really appreciate your quick reply. yes, I am trying to tackle the
> >> second case where in all the requests directed to the service regardless
> >> of
> >> operation should go to the same reciever. Basically, I have a servlet
> >> which
> >> recieves all the soap requests sent through http. This servlet will
> >> receive
> >> all the requests sent to a given url ( say
> >> http://www.foo.com/abc/servlet)
> >> with any soap action header. Now, I am trying to replace this servlet
> >> with
> >> axis2. I want to deal directly with XML using axiom apis and avoid
> >> marshalling and de marshalling of xmls to java objects.
> >>    As per my understanding, and by what you explained, axis2 dispatcher
> >> identifies the service and the operation name and then finds the
> >> corresponding entry in the services.xml.  Since, I don't have any
> >> operations
> >> specified in the services.xml, it throws up an error.
> >>    What kind of handler should I write in order to avoid the above
> error?
> >>
> >> Thanks,
> >> Sanjay
> >>
> >>
> >> Eran Chinthaka-3 wrote:
> >> >
> >> > Do you want to get all the message related to a given service in to
> one
> >> > message receiver? Or is it that you want to get all the messages,
> >> > irrespective of the service to get to one message receiver?
> >> >
> >> > If it is the first case, then register one message receiver class name
> >> for
> >> > all the MEPs.
> >> >
> >> > IIRC, this is how Axis2 internals work. When you get a SOAP message,
> we
> >> > will
> >> > first identify the service and the operation this message is going to.
> >> > Every
> >> > operation is connected to a MEP (http://wso2.org/library/335), and a
> >> > message
> >> > receiver is also bound to a message receiver for a given service. One
> >> the
> >> > operation and the service is found, service.xml details are used to
> >> > retrieve
> >> > the message receiver connected to the MEP of that operation.
> >> >
> >> > If it is the second case, then you might have to write a handler to do
> >> > this.
> >> >
> >> >
> >> > HTH.
> >> > Chinthaka
> >> >
> >> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
> >> >
> >> >>
> >> >> I want the same message reciever to be invoked for a service
> >> regardless
> >> >> of
> >> >> whatever the soap action comes in the request. Basically I am trying
> >> to
> >> >> simulate a servlet which will get all the requests targeted to it. I
> >> dont
> >> >> have any service implementation class and no wsdl in the services
> >> folder.
> >> >>
> >> >> Here is what I have in services.xml:
> >> >>
> >> >>    <service >
> >> >>        <messageReceivers>
> >> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> >> >> class="com.xyz.GenericMessageReceiverInOut"/>
> >> >>        </messageReceivers>
> >> >>
> >> >>    </service>
> >> >>
> >> >>
> >> >> I can't put any opertions name as I want the same
> >> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
> >> >> requests
> >> >> with any soapaction or wsa action).
> >> >>
> >> >>
> >> >> When I send the request using a client, I get following exception:
> >> >>
> >> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR)
> >> for
> >> >> the
> >> >> Operation not found is
> >> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and
> the
> >> WSA
> >> >> Action = null&#xd;
> >> >>        at
> >> >>
> >> >>
> >>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
> >> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
> >> >>        at
> >> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
> >> >>        at
> >> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
> >> >>
> >> >>
> >> >> I really appreciate if any one can point me to the right solution. I
> >> wish
> >> >> i
> >> >> could put wild card character (*) in the operation tag inside
> >> >> services.xml.
> >> >>
> >> >>
> >> >>
> >> >> --
> >> >> View this message in context:
> >> >>
> >>
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
> >> >> Sent from the Axis - User mailing list archive at Nabble.com.
> >> >>
> >> >>
> >> >> ---------------------------------------------------------------------
> >> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >> >> For additional commands, e-mail: axis-user-help@ws.apache.org
> >> >>
> >> >>
> >> >
> >> >
> >> > --
> >> > With Mettha,
> >> > Eran Chinthaka
> >> >
> >> > --------------------------------------------------------------------
> >> > Health is the greatest gift; contentment is the greatest wealth;
> >> trusting
> >> > is
> >> > the best relationship; nirvana is the highest joy. - Dhammapada
> >> >
> >> >
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
> >> Sent from the Axis - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: axis-user-help@ws.apache.org
> >>
> >>
> >
> >
> > --
> > With Mettha,
> > Eran Chinthaka
> >
> > --------------------------------------------------------------------
> > Health is the greatest gift; contentment is the greatest wealth; trusting
> > is
> > the best relationship; nirvana is the highest joy. - Dhammapada
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19221987.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
Amila Suriarachchi,
WSO2 Inc.

Re: Want to use the same message receiver for all operations!!

Posted by murugess <ms...@gmail.com>.
Thanks Chinthaka. I am so glad to see active participation from axis2 team in
this forum.
   I feel many folks might be having this requirement wherein they want to
write a single gateway service that recieves all the requests and then
dispatches it to the right handler dynamically. This gateway service need
not be changed each time a new handler ( operation) is added. It should by
default recieve all the requests directed to it.
I am waiting to hear from dev team. 

Regards,
Sanjay



Eran Chinthaka-3 wrote:
> 
> This is an interesting scenario.
> 
> Axis2, by design, requires every message to be associated with a service
> and
> an operation. And this is checked in the dispatching phase. If you don't
> have operations defined, then you might have to hack a little bit. IIRC,
> you
> can now add handlers before the dispatching phase.
> 
> I'm forwarding this message to dev list also, so that people over there
> knows better than I do about this.
> 
> Thanks,
> Chinthaka
> 
> On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:
> 
>>
>> Hi Chinthaka,
>>    Really appreciate your quick reply. yes, I am trying to tackle the
>> second case where in all the requests directed to the service regardless
>> of
>> operation should go to the same reciever. Basically, I have a servlet
>> which
>> recieves all the soap requests sent through http. This servlet will
>> receive
>> all the requests sent to a given url ( say
>> http://www.foo.com/abc/servlet)
>> with any soap action header. Now, I am trying to replace this servlet
>> with
>> axis2. I want to deal directly with XML using axiom apis and avoid
>> marshalling and de marshalling of xmls to java objects.
>>    As per my understanding, and by what you explained, axis2 dispatcher
>> identifies the service and the operation name and then finds the
>> corresponding entry in the services.xml.  Since, I don't have any
>> operations
>> specified in the services.xml, it throws up an error.
>>    What kind of handler should I write in order to avoid the above error?
>>
>> Thanks,
>> Sanjay
>>
>>
>> Eran Chinthaka-3 wrote:
>> >
>> > Do you want to get all the message related to a given service in to one
>> > message receiver? Or is it that you want to get all the messages,
>> > irrespective of the service to get to one message receiver?
>> >
>> > If it is the first case, then register one message receiver class name
>> for
>> > all the MEPs.
>> >
>> > IIRC, this is how Axis2 internals work. When you get a SOAP message, we
>> > will
>> > first identify the service and the operation this message is going to.
>> > Every
>> > operation is connected to a MEP (http://wso2.org/library/335), and a
>> > message
>> > receiver is also bound to a message receiver for a given service. One
>> the
>> > operation and the service is found, service.xml details are used to
>> > retrieve
>> > the message receiver connected to the MEP of that operation.
>> >
>> > If it is the second case, then you might have to write a handler to do
>> > this.
>> >
>> >
>> > HTH.
>> > Chinthaka
>> >
>> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
>> >
>> >>
>> >> I want the same message reciever to be invoked for a service
>> regardless
>> >> of
>> >> whatever the soap action comes in the request. Basically I am trying
>> to
>> >> simulate a servlet which will get all the requests targeted to it. I
>> dont
>> >> have any service implementation class and no wsdl in the services
>> folder.
>> >>
>> >> Here is what I have in services.xml:
>> >>
>> >>    <service >
>> >>        <messageReceivers>
>> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
>> >> class="com.xyz.GenericMessageReceiverInOut"/>
>> >>        </messageReceivers>
>> >>
>> >>    </service>
>> >>
>> >>
>> >> I can't put any opertions name as I want the same
>> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
>> >> requests
>> >> with any soapaction or wsa action).
>> >>
>> >>
>> >> When I send the request using a client, I get following exception:
>> >>
>> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR)
>> for
>> >> the
>> >> Operation not found is
>> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and the
>> WSA
>> >> Action = null&#xd;
>> >>        at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>> >>
>> >>
>> >> I really appreciate if any one can point me to the right solution. I
>> wish
>> >> i
>> >> could put wild card character (*) in the operation tag inside
>> >> services.xml.
>> >>
>> >>
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
>> >> Sent from the Axis - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> >> For additional commands, e-mail: axis-user-help@ws.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > With Mettha,
>> > Eran Chinthaka
>> >
>> > --------------------------------------------------------------------
>> > Health is the greatest gift; contentment is the greatest wealth;
>> trusting
>> > is
>> > the best relationship; nirvana is the highest joy. - Dhammapada
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
> 
> 
> -- 
> With Mettha,
> Eran Chinthaka
> 
> --------------------------------------------------------------------
> Health is the greatest gift; contentment is the greatest wealth; trusting
> is
> the best relationship; nirvana is the highest joy. - Dhammapada
> 
> 

-- 
View this message in context: http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19221987.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Want to use the same message receiver for all operations!!

Posted by Amila Suriarachchi <am...@gmail.com>.
On Fri, Aug 29, 2008 at 5:47 AM, Eran Chinthaka <er...@gmail.com>wrote:

> This is an interesting scenario.
>
> Axis2, by design, requires every message to be associated with a service
> and an operation. And this is checked in the dispatching phase. If you don't
> have operations defined, then you might have to hack a little bit. IIRC, you
> can now add handlers before the dispatching phase.
>
> I'm forwarding this message to dev list also, so that people over there
> knows better than I do about this.
>

try something like this

<service name="POJOService">
        <messageReceivers>
            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
class="test.kp.service.POJOServiceMessageReceiverInOut"/>
        </messageReceivers>
        <parameter name="supportSingleOperation">true</parameter>
        <operation name="echoPerson" mep="http://www.w3.org/ns/wsdl/in-out"
namespace="http://service.kp.test">
            <actionMapping>urn:echoPerson</actionMapping>
        </operation>
    </service>

Here when you set supportSingleOperation it dispatch it to any available
operation. regardless of the
soap action.

thanks,
Amila.

>
>
> Thanks,
> Chinthaka
>
>
> On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:
>
>>
>> Hi Chinthaka,
>>    Really appreciate your quick reply. yes, I am trying to tackle the
>> second case where in all the requests directed to the service regardless
>> of
>> operation should go to the same reciever. Basically, I have a servlet
>> which
>> recieves all the soap requests sent through http. This servlet will
>> receive
>> all the requests sent to a given url ( say http://www.foo.com/abc/servlet
>> )
>> with any soap action header. Now, I am trying to replace this servlet with
>> axis2. I want to deal directly with XML using axiom apis and avoid
>> marshalling and de marshalling of xmls to java objects.
>>    As per my understanding, and by what you explained, axis2 dispatcher
>> identifies the service and the operation name and then finds the
>> corresponding entry in the services.xml.  Since, I don't have any
>> operations
>> specified in the services.xml, it throws up an error.
>>    What kind of handler should I write in order to avoid the above error?
>>
>> Thanks,
>> Sanjay
>>
>>
>> Eran Chinthaka-3 wrote:
>> >
>> > Do you want to get all the message related to a given service in to one
>> > message receiver? Or is it that you want to get all the messages,
>> > irrespective of the service to get to one message receiver?
>> >
>> > If it is the first case, then register one message receiver class name
>> for
>> > all the MEPs.
>> >
>> > IIRC, this is how Axis2 internals work. When you get a SOAP message, we
>> > will
>> > first identify the service and the operation this message is going to.
>> > Every
>> > operation is connected to a MEP (http://wso2.org/library/335), and a
>> > message
>> > receiver is also bound to a message receiver for a given service. One
>> the
>> > operation and the service is found, service.xml details are used to
>> > retrieve
>> > the message receiver connected to the MEP of that operation.
>> >
>> > If it is the second case, then you might have to write a handler to do
>> > this.
>> >
>> >
>> > HTH.
>> > Chinthaka
>> >
>> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
>> >
>> >>
>> >> I want the same message reciever to be invoked for a service regardless
>> >> of
>> >> whatever the soap action comes in the request. Basically I am trying to
>> >> simulate a servlet which will get all the requests targeted to it. I
>> dont
>> >> have any service implementation class and no wsdl in the services
>> folder.
>> >>
>> >> Here is what I have in services.xml:
>> >>
>> >>    <service >
>> >>        <messageReceivers>
>> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
>> >> class="com.xyz.GenericMessageReceiverInOut"/>
>> >>        </messageReceivers>
>> >>
>> >>    </service>
>> >>
>> >>
>> >> I can't put any opertions name as I want the same
>> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
>> >> requests
>> >> with any soapaction or wsa action).
>> >>
>> >>
>> >> When I send the request using a client, I get following exception:
>> >>
>> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for
>> >> the
>> >> Operation not found is
>> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and the
>> WSA
>> >> Action = null&#xd;
>> >>        at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>> >>        at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>> >>
>> >>
>> >> I really appreciate if any one can point me to the right solution. I
>> wish
>> >> i
>> >> could put wild card character (*) in the operation tag inside
>> >> services.xml.
>> >>
>> >>
>> >>
>> >> --
>> >> View this message in context:
>> >>
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
>> >> Sent from the Axis - User mailing list archive at Nabble.com.
>> >>
>> >>
>> >> ---------------------------------------------------------------------
>> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> >> For additional commands, e-mail: axis-user-help@ws.apache.org
>> >>
>> >>
>> >
>> >
>> > --
>> > With Mettha,
>> > Eran Chinthaka
>> >
>> > --------------------------------------------------------------------
>> > Health is the greatest gift; contentment is the greatest wealth;
>> trusting
>> > is
>> > the best relationship; nirvana is the highest joy. - Dhammapada
>> >
>> >
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
>
>
> --
> With Mettha,
> Eran Chinthaka
>
> --------------------------------------------------------------------
> Health is the greatest gift; contentment is the greatest wealth; trusting
> is the best relationship; nirvana is the highest joy. - Dhammapada
>



-- 
Amila Suriarachchi,
WSO2 Inc.

Re: Want to use the same message receiver for all operations!!

Posted by Eran Chinthaka <er...@gmail.com>.
This is an interesting scenario.

Axis2, by design, requires every message to be associated with a service and
an operation. And this is checked in the dispatching phase. If you don't
have operations defined, then you might have to hack a little bit. IIRC, you
can now add handlers before the dispatching phase.

I'm forwarding this message to dev list also, so that people over there
knows better than I do about this.

Thanks,
Chinthaka

On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:

>
> Hi Chinthaka,
>    Really appreciate your quick reply. yes, I am trying to tackle the
> second case where in all the requests directed to the service regardless of
> operation should go to the same reciever. Basically, I have a servlet which
> recieves all the soap requests sent through http. This servlet will receive
> all the requests sent to a given url ( say http://www.foo.com/abc/servlet)
> with any soap action header. Now, I am trying to replace this servlet with
> axis2. I want to deal directly with XML using axiom apis and avoid
> marshalling and de marshalling of xmls to java objects.
>    As per my understanding, and by what you explained, axis2 dispatcher
> identifies the service and the operation name and then finds the
> corresponding entry in the services.xml.  Since, I don't have any
> operations
> specified in the services.xml, it throws up an error.
>    What kind of handler should I write in order to avoid the above error?
>
> Thanks,
> Sanjay
>
>
> Eran Chinthaka-3 wrote:
> >
> > Do you want to get all the message related to a given service in to one
> > message receiver? Or is it that you want to get all the messages,
> > irrespective of the service to get to one message receiver?
> >
> > If it is the first case, then register one message receiver class name
> for
> > all the MEPs.
> >
> > IIRC, this is how Axis2 internals work. When you get a SOAP message, we
> > will
> > first identify the service and the operation this message is going to.
> > Every
> > operation is connected to a MEP (http://wso2.org/library/335), and a
> > message
> > receiver is also bound to a message receiver for a given service. One the
> > operation and the service is found, service.xml details are used to
> > retrieve
> > the message receiver connected to the MEP of that operation.
> >
> > If it is the second case, then you might have to write a handler to do
> > this.
> >
> >
> > HTH.
> > Chinthaka
> >
> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
> >
> >>
> >> I want the same message reciever to be invoked for a service regardless
> >> of
> >> whatever the soap action comes in the request. Basically I am trying to
> >> simulate a servlet which will get all the requests targeted to it. I
> dont
> >> have any service implementation class and no wsdl in the services
> folder.
> >>
> >> Here is what I have in services.xml:
> >>
> >>    <service >
> >>        <messageReceivers>
> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> >> class="com.xyz.GenericMessageReceiverInOut"/>
> >>        </messageReceivers>
> >>
> >>    </service>
> >>
> >>
> >> I can't put any opertions name as I want the same
> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
> >> requests
> >> with any soapaction or wsa action).
> >>
> >>
> >> When I send the request using a client, I get following exception:
> >>
> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for
> >> the
> >> Operation not found is
> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and the
> WSA
> >> Action = null&#xd;
> >>        at
> >>
> >>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
> >>        at
> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
> >>        at
> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
> >>
> >>
> >> I really appreciate if any one can point me to the right solution. I
> wish
> >> i
> >> could put wild card character (*) in the operation tag inside
> >> services.xml.
> >>
> >>
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
> >> Sent from the Axis - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: axis-user-help@ws.apache.org
> >>
> >>
> >
> >
> > --
> > With Mettha,
> > Eran Chinthaka
> >
> > --------------------------------------------------------------------
> > Health is the greatest gift; contentment is the greatest wealth; trusting
> > is
> > the best relationship; nirvana is the highest joy. - Dhammapada
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
With Mettha,
Eran Chinthaka

--------------------------------------------------------------------
Health is the greatest gift; contentment is the greatest wealth; trusting is
the best relationship; nirvana is the highest joy. - Dhammapada

Re: Want to use the same message receiver for all operations!!

Posted by Eran Chinthaka <er...@gmail.com>.
This is an interesting scenario.

Axis2, by design, requires every message to be associated with a service and
an operation. And this is checked in the dispatching phase. If you don't
have operations defined, then you might have to hack a little bit. IIRC, you
can now add handlers before the dispatching phase.

I'm forwarding this message to dev list also, so that people over there
knows better than I do about this.

Thanks,
Chinthaka

On Thu, Aug 28, 2008 at 7:25 PM, murugess <ms...@gmail.com> wrote:

>
> Hi Chinthaka,
>    Really appreciate your quick reply. yes, I am trying to tackle the
> second case where in all the requests directed to the service regardless of
> operation should go to the same reciever. Basically, I have a servlet which
> recieves all the soap requests sent through http. This servlet will receive
> all the requests sent to a given url ( say http://www.foo.com/abc/servlet)
> with any soap action header. Now, I am trying to replace this servlet with
> axis2. I want to deal directly with XML using axiom apis and avoid
> marshalling and de marshalling of xmls to java objects.
>    As per my understanding, and by what you explained, axis2 dispatcher
> identifies the service and the operation name and then finds the
> corresponding entry in the services.xml.  Since, I don't have any
> operations
> specified in the services.xml, it throws up an error.
>    What kind of handler should I write in order to avoid the above error?
>
> Thanks,
> Sanjay
>
>
> Eran Chinthaka-3 wrote:
> >
> > Do you want to get all the message related to a given service in to one
> > message receiver? Or is it that you want to get all the messages,
> > irrespective of the service to get to one message receiver?
> >
> > If it is the first case, then register one message receiver class name
> for
> > all the MEPs.
> >
> > IIRC, this is how Axis2 internals work. When you get a SOAP message, we
> > will
> > first identify the service and the operation this message is going to.
> > Every
> > operation is connected to a MEP (http://wso2.org/library/335), and a
> > message
> > receiver is also bound to a message receiver for a given service. One the
> > operation and the service is found, service.xml details are used to
> > retrieve
> > the message receiver connected to the MEP of that operation.
> >
> > If it is the second case, then you might have to write a handler to do
> > this.
> >
> >
> > HTH.
> > Chinthaka
> >
> > On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
> >
> >>
> >> I want the same message reciever to be invoked for a service regardless
> >> of
> >> whatever the soap action comes in the request. Basically I am trying to
> >> simulate a servlet which will get all the requests targeted to it. I
> dont
> >> have any service implementation class and no wsdl in the services
> folder.
> >>
> >> Here is what I have in services.xml:
> >>
> >>    <service >
> >>        <messageReceivers>
> >>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> >> class="com.xyz.GenericMessageReceiverInOut"/>
> >>        </messageReceivers>
> >>
> >>    </service>
> >>
> >>
> >> I can't put any opertions name as I want the same
> >> GenericMessageReceiverInOut to be invoked for all operations  ( or
> >> requests
> >> with any soapaction or wsa action).
> >>
> >>
> >> When I send the request using a client, I get following exception:
> >>
> >> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for
> >> the
> >> Operation not found is
> >> http://localhost:8080/CRMGWServer/services/GenericFeedService and the
> WSA
> >> Action = null&#xd;
> >>        at
> >>
> >>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
> >>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
> >>        at
> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
> >>        at
> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
> >>
> >>
> >> I really appreciate if any one can point me to the right solution. I
> wish
> >> i
> >> could put wild card character (*) in the operation tag inside
> >> services.xml.
> >>
> >>
> >>
> >> --
> >> View this message in context:
> >>
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
> >> Sent from the Axis - User mailing list archive at Nabble.com.
> >>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> >> For additional commands, e-mail: axis-user-help@ws.apache.org
> >>
> >>
> >
> >
> > --
> > With Mettha,
> > Eran Chinthaka
> >
> > --------------------------------------------------------------------
> > Health is the greatest gift; contentment is the greatest wealth; trusting
> > is
> > the best relationship; nirvana is the highest joy. - Dhammapada
> >
> >
>
> --
> View this message in context:
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
With Mettha,
Eran Chinthaka

--------------------------------------------------------------------
Health is the greatest gift; contentment is the greatest wealth; trusting is
the best relationship; nirvana is the highest joy. - Dhammapada

Re: Want to use the same message receiver for all operations!!

Posted by murugess <ms...@gmail.com>.
Hi Chinthaka,
    Really appreciate your quick reply. yes, I am trying to tackle the
second case where in all the requests directed to the service regardless of
operation should go to the same reciever. Basically, I have a servlet which
recieves all the soap requests sent through http. This servlet will receive
all the requests sent to a given url ( say http://www.foo.com/abc/servlet)
with any soap action header. Now, I am trying to replace this servlet with
axis2. I want to deal directly with XML using axiom apis and avoid
marshalling and de marshalling of xmls to java objects.
    As per my understanding, and by what you explained, axis2 dispatcher
identifies the service and the operation name and then finds the
corresponding entry in the services.xml.  Since, I don't have any operations
specified in the services.xml, it throws up an error. 
    What kind of handler should I write in order to avoid the above error?

Thanks,
Sanjay


Eran Chinthaka-3 wrote:
> 
> Do you want to get all the message related to a given service in to one
> message receiver? Or is it that you want to get all the messages,
> irrespective of the service to get to one message receiver?
> 
> If it is the first case, then register one message receiver class name for
> all the MEPs.
> 
> IIRC, this is how Axis2 internals work. When you get a SOAP message, we
> will
> first identify the service and the operation this message is going to.
> Every
> operation is connected to a MEP (http://wso2.org/library/335), and a
> message
> receiver is also bound to a message receiver for a given service. One the
> operation and the service is found, service.xml details are used to
> retrieve
> the message receiver connected to the MEP of that operation.
> 
> If it is the second case, then you might have to write a handler to do
> this.
> 
> 
> HTH.
> Chinthaka
> 
> On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:
> 
>>
>> I want the same message reciever to be invoked for a service regardless
>> of
>> whatever the soap action comes in the request. Basically I am trying to
>> simulate a servlet which will get all the requests targeted to it. I dont
>> have any service implementation class and no wsdl in the services folder.
>>
>> Here is what I have in services.xml:
>>
>>    <service >
>>        <messageReceivers>
>>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
>> class="com.xyz.GenericMessageReceiverInOut"/>
>>        </messageReceivers>
>>
>>    </service>
>>
>>
>> I can't put any opertions name as I want the same
>> GenericMessageReceiverInOut to be invoked for all operations  ( or
>> requests
>> with any soapaction or wsa action).
>>
>>
>> When I send the request using a client, I get following exception:
>>
>> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for
>> the
>> Operation not found is
>> http://localhost:8080/CRMGWServer/services/GenericFeedService and the WSA
>> Action = null&#xd;
>>        at
>>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>>        at
>> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>>        at
>> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>>
>>
>> I really appreciate if any one can point me to the right solution. I wish
>> i
>> could put wild card character (*) in the operation tag inside
>> services.xml.
>>
>>
>>
>> --
>> View this message in context:
>> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
>> Sent from the Axis - User mailing list archive at Nabble.com.
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
>> For additional commands, e-mail: axis-user-help@ws.apache.org
>>
>>
> 
> 
> -- 
> With Mettha,
> Eran Chinthaka
> 
> --------------------------------------------------------------------
> Health is the greatest gift; contentment is the greatest wealth; trusting
> is
> the best relationship; nirvana is the highest joy. - Dhammapada
> 
> 

-- 
View this message in context: http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19211171.html
Sent from the Axis - User mailing list archive at Nabble.com.


---------------------------------------------------------------------
To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-user-help@ws.apache.org


Re: Want to use the same message receiver for all operations!!

Posted by Eran Chinthaka <er...@gmail.com>.
Do you want to get all the message related to a given service in to one
message receiver? Or is it that you want to get all the messages,
irrespective of the service to get to one message receiver?

If it is the first case, then register one message receiver class name for
all the MEPs.

IIRC, this is how Axis2 internals work. When you get a SOAP message, we will
first identify the service and the operation this message is going to. Every
operation is connected to a MEP (http://wso2.org/library/335), and a message
receiver is also bound to a message receiver for a given service. One the
operation and the service is found, service.xml details are used to retrieve
the message receiver connected to the MEP of that operation.

If it is the second case, then you might have to write a handler to do this.


HTH.
Chinthaka

On Wed, Aug 27, 2008 at 7:56 PM, murugess <ms...@gmail.com> wrote:

>
> I want the same message reciever to be invoked for a service regardless of
> whatever the soap action comes in the request. Basically I am trying to
> simulate a servlet which will get all the requests targeted to it. I dont
> have any service implementation class and no wsdl in the services folder.
>
> Here is what I have in services.xml:
>
>    <service >
>        <messageReceivers>
>            <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> class="com.xyz.GenericMessageReceiverInOut"/>
>        </messageReceivers>
>
>    </service>
>
>
> I can't put any opertions name as I want the same
> GenericMessageReceiverInOut to be invoked for all operations  ( or requests
> with any soapaction or wsa action).
>
>
> When I send the request using a client, I get following exception:
>
> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for the
> Operation not found is
> http://localhost:8080/CRMGWServer/services/GenericFeedService and the WSA
> Action = null&#xd;
>        at
>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
>        at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
>        at
> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
>        at
> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
>
>
> I really appreciate if any one can point me to the right solution. I wish i
> could put wild card character (*) in the operation tag inside services.xml.
>
>
>
> --
> View this message in context:
> http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
> Sent from the Axis - User mailing list archive at Nabble.com.
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
>
>


-- 
With Mettha,
Eran Chinthaka

--------------------------------------------------------------------
Health is the greatest gift; contentment is the greatest wealth; trusting is
the best relationship; nirvana is the highest joy. - Dhammapada

RE: Want to use the same message receiver for all operations!!

Posted by Martin Gainty <mg...@hotmail.com>.
please supply source for GenericMessageReceiverInOut.java

thx,
Martin 
______________________________________________ 
Disclaimer and confidentiality note 
Everything in this e-mail and any attachments relates to the official business of Sender. This transmission is of a confidential nature and Sender does not endorse distribution to any party other than intended recipient. Sender does not necessarily endorse content contained within this transmission. 


> Date: Wed, 27 Aug 2008 16:56:19 -0700
> From: msanjay@gmail.com
> To: axis-user@ws.apache.org
> Subject: Want to use the same message receiver for all operations!!
> 
> 
> I want the same message reciever to be invoked for a service regardless of
> whatever the soap action comes in the request. Basically I am trying to
> simulate a servlet which will get all the requests targeted to it. I dont
> have any service implementation class and no wsdl in the services folder. 
> 
> Here is what I have in services.xml:
> 
>     <service >
>         <messageReceivers>
>             <messageReceiver mep="http://www.w3.org/ns/wsdl/in-out"
> class="com.xyz.GenericMessageReceiverInOut"/>
>         </messageReceivers>
>    		           
>     </service>
> 
> 
> I can't put any opertions name as I want the same
> GenericMessageReceiverInOut to be invoked for all operations  ( or requests
> with any soapaction or wsa action).
> 
> 
> When I send the request using a client, I get following exception:
> 
> <Exception>org.apache.axis2.AxisFault: The endpoint reference (EPR) for the
> Operation not found is
> http://localhost:8080/CRMGWServer/services/GenericFeedService and the WSA
> Action = null&#xd;
> 	at
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)&#xd;
> 	at org.apache.axis2.engine.Phase.invoke(Phase.java:308)&#xd;
> 	at org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)&#xd;
> 	at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)&#xd;
> 
> 
> I really appreciate if any one can point me to the right solution. I wish i
> could put wild card character (*) in the operation tag inside services.xml.
> 
> 
> 
> -- 
> View this message in context: http://www.nabble.com/Want-to-use-the-same-message-receiver-for-all-operations%21%21-tp19191943p19191943.html
> Sent from the Axis - User mailing list archive at Nabble.com.
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: axis-user-unsubscribe@ws.apache.org
> For additional commands, e-mail: axis-user-help@ws.apache.org
> 

_________________________________________________________________
Get thousands of games on your PC, your mobile phone, and the web with Windows®.
http://clk.atdmt.com/MRT/go/108588800/direct/01/