I ran into the same problem some time back
in which I wanted Axis 1.x “message” style behavior in Axis 2 in
order to dispatch to non-standard Java objects. I ended up using a work-around
involving SOAPAction since Axis 2 contains an action-based dispatcher. So every
operation defined in my WSDL specified the same SOAPAction value equal to my
service method name. I was using RawXMLMessageReceiver with a single method. Note
that I was using WSDL 1.1/SOAP 1.1. I haven’t tried this with SOAP
1.2/WSDL 2.0, which does not have SOAPAction, although it does make use of an
action parameter with exactly the same semantics. I’m guessing you could
do the same using wsa:Action header as well.
It would definitely be nice though to have
a wildcard <actionMapping> with Axis 1.x “message” style
semantics instead of having to work-around this problem.
- Junaid
From: David Melgar
[mailto:[EMAIL PROTECTED]
Sent: Wednesday, July 26, 2006
11:37 AM
To: [email protected]
Subject: Re: Axis1
style="message" in Axis2?
Setting the message receiver to RawXMLMessageReceiver
still appears to require <actionMapping> to determine which method to
invoke. In axis1, the specified method would receive all messages for that
service. Equivalent behavior should be available in axis2 regardless of the
value of the wsa:Action header.
To
further clarrify, the service I'm writing bridges between webservices and a
non-Java object invocation mechanism. It dynamically determines what operations
are allowed. This services does not know at deployment time what operations are
possible. I therefore don't know all the wsa:Action header values that it might
be included in request messages. Therefore I cannot declare <actionMapping>
values in the service deployment descriptor. In case you're wondering, this
service also dynamically generates WSDL to describe the discovered supported
operations.
Is
there a way to wildcard <actionMapping> to say that any action maps to a
method? Or to avoid the requirement for specifying an actionMapping if
RawXMLMessageReceiver is used.
Are
there other approaches that could be used?
|
"Anne Thomas Manes"
<[EMAIL PROTECTED]>
07/25/2006 02:06 PM
|
|
Use
the RawXMLMessageReceiver.
On 7/25/06, David Melgar
<[EMAIL PROTECTED]> wrote:
>
> I need to implement a message style web
service in Axis2. In Axis1 wsdd,
> this would be a web service declared with
> <service name=xxx
style="message">
>
> How do I declare the equivalent web service
in Axis2? In addition, I will
> expect that WS-Addressing headers will be
sent and received. From reading
> the Axis2 documentation, it looks like the
<actionMapping> element is used
> to map an action header value to an operation
name. In my case I want Axis2
> to always send me the body of the message. I
do not want Axis2 to try and
> determine which operation is being invoked, I
want it to send the message to
> a specific method all the time, as a message
style service did in Axis1.
>
> I'm doing this because my service is mapping
web service invocations of
> operations to another form of invocation on
non-Java objects.
>
> Thanks
---------------------------------------------------------------------
To unsubscribe, e-mail:
[EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]