You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by Eran Chinthaka <er...@gmail.com> on 2008/08/29 02:17:02 UTC
Re: Want to use the same message receiver for all operations!!
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
> >> at
> >>
> >>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
> >> at
> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
> >> at
> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
> >>
> >>
> >> 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 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
>> >> at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
>> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
>> >>
>> >>
>> >> 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
>> >> >> at
>> >> >>
>> >> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
>> >> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
>> >> >> at
>> >> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
>> >> >> at
>> >> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
>> >> >>
>> >> >>
>> >> >> 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
> >> >> at
> >> >>
> >> >>
> >>
> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
> >> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
> >> >> at
> >> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
> >> >> at
> >> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
> >> >>
> >> >>
> >> >> 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
>> >> at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
>> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
>> >>
>> >>
>> >> 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
>> >> at
>> >>
>> >>
>> org.apache.axis2.engine.DispatchPhase.checkPostConditions(DispatchPhase.java:86)
>> >> at org.apache.axis2.engine.Phase.invoke(Phase.java:308)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.invoke(AxisEngine.java:212)
>> >> at
>> >> org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:132)
>> >>
>> >>
>> >> 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.