Re: Axis1 style=message in Axis2?

2006-08-17 Thread David Melgar
Can you clarify what Axis is generating an error if actionMapping is not
specified? I had commented out the dispatch phase from axis2.xml and it was
still returning a 500. Where is the exception being logged?

I'd like to have more confidence in the solution before investing too much
time in it.



   
 Ajith Ranabahu  
 [EMAIL PROTECTED] 
 mail.com  To 
   axis-user@ws.apache.org 
 08/16/06 10:59 PM  cc 
   
   Subject 
 Please respond to Re: Axis1 style=message in Axis2? 
 [EMAIL PROTECTED] 
  he.org   
   
   
   
   




Hi,
Given what you need to do (which is possible ofcourse) it simply
requires a bit more knowledge about the internals of Axis2. I am going
to outline a doable procedure but unfortunatley I don't have the time
to write a lengthy description and elaborate each point.

1. You need to introduce a custom dispatcher (Axis does not enforce
the action but it comes addressing enabled by default). What this
dispatcher does is figuring out the static and runtime service and
operation  'data  bags'. We call them AxisService,AxisOperation and
serviceContext, operationContext. Ultimately your custom dispatcher
should provide the these 'data bags' relevant to your service. Please
have a look at the dispatcher implementations to get an idea of how
these work.

2. Write a custom message receiver. If you generate code for server
side using a simple WSDL you will see the source for a custom message
receiver. Modify the code off that not to find the method using the
action.

That should do it :)

Ajith
On 8/16/06, David Melgar [EMAIL PROTECTED] wrote:
 I'm still trying to figure out how to deploy a message style service
 WITHOUT having to declare each possible wsa:Action value which might be
 used on the invocation. Its a message style service... I dont want or
need
 Axis to figure out what method to invoke. There's only one method
 available.

 I tried the 1st possible solution mentioned below,
 1. Remove the dispach phase from your Axis2 configuration and write
 your own MessageReceiver (which removes the need for an AxisOperation
 to be identified)

 I wrote a new message receiver but ran into bigger problems. If I remove
 the actionMapping tags in the service's deployment descriptor, my new
 message receiver never gets called. I receive a fault with a response
code
 500 with no additional information to help diagnose where the problem
 occured. Nothing showed up in Tomcat's catalina.log.

 Same problem seems to occur if the wsa:Action header value in the request
 doesn't match the set of actionMapping tags for the service.

 I tried commenting out the dispatch phase as stated as a suggestion
without
 any difference in behavior.

 Suggestions? Is there an easier way to accomplish this? It still appears
to
 me to be an Axis design issue. Axis should not force declaration of
 specific wsa:Action values for a message based service. It could be an
 option, but should not be required. Wildcard or similar should be
 supported.





  David Illsley
  [EMAIL PROTECTED]
  il.com
To
axis-user@ws.apache.org
  07/26/06 02:00 PM
cc


Subject
  Please respond to Re: Axis1 style=message in
Axis2?
  [EMAIL PROTECTED]
   he.org








 On 26/07/06, David Melgar [EMAIL PROTECTED] wrote:
 
 
  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

Re: Axis1 style=message in Axis2?

2006-08-16 Thread David Melgar
I'm still trying to figure out how to deploy a message style service
WITHOUT having to declare each possible wsa:Action value which might be
used on the invocation. Its a message style service... I dont want or need
Axis to figure out what method to invoke. There's only one method
available.

I tried the 1st possible solution mentioned below,
1. Remove the dispach phase from your Axis2 configuration and write
your own MessageReceiver (which removes the need for an AxisOperation
to be identified)

I wrote a new message receiver but ran into bigger problems. If I remove
the actionMapping tags in the service's deployment descriptor, my new
message receiver never gets called. I receive a fault with a response code
500 with no additional information to help diagnose where the problem
occured. Nothing showed up in Tomcat's catalina.log.

Same problem seems to occur if the wsa:Action header value in the request
doesn't match the set of actionMapping tags for the service.

I tried commenting out the dispatch phase as stated as a suggestion without
any difference in behavior.

Suggestions? Is there an easier way to accomplish this? It still appears to
me to be an Axis design issue. Axis should not force declaration of
specific wsa:Action values for a message based service. It could be an
option, but should not be required. Wildcard or similar should be
supported.




   
 David Illsley   
 [EMAIL PROTECTED] 
 il.comTo 
   axis-user@ws.apache.org 
 07/26/06 02:00 PM  cc 
   
   Subject 
 Please respond to Re: Axis1 style=message in Axis2? 
 [EMAIL PROTECTED] 
  he.org   
   
   
   
   




On 26/07/06, David Melgar [EMAIL PROTECTED] wrote:


 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?

What you are trying to do sounds pretty advanced (given that you're
dynamically generating WSDL).

There are a couple of options I can think of...
1. Remove the dispach phase from your Axis2 configuration and write
your own MessageReceiver (which removes the need for an AxisOperation
to be identified)
2. Define a single operation for the service and add a handler to the
DispatchPhase which selects that operation when the
RawXMLInOutReceiver will then invoke on the endpoint object.

David

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Axis1 style=message in Axis2?

2006-08-16 Thread Ajith Ranabahu

Hi,
Given what you need to do (which is possible ofcourse) it simply
requires a bit more knowledge about the internals of Axis2. I am going
to outline a doable procedure but unfortunatley I don't have the time
to write a lengthy description and elaborate each point.

1. You need to introduce a custom dispatcher (Axis does not enforce
the action but it comes addressing enabled by default). What this
dispatcher does is figuring out the static and runtime service and
operation  'data  bags'. We call them AxisService,AxisOperation and
serviceContext, operationContext. Ultimately your custom dispatcher
should provide the these 'data bags' relevant to your service. Please
have a look at the dispatcher implementations to get an idea of how
these work.

2. Write a custom message receiver. If you generate code for server
side using a simple WSDL you will see the source for a custom message
receiver. Modify the code off that not to find the method using the
action.

That should do it :)

Ajith
On 8/16/06, David Melgar [EMAIL PROTECTED] wrote:

I'm still trying to figure out how to deploy a message style service
WITHOUT having to declare each possible wsa:Action value which might be
used on the invocation. Its a message style service... I dont want or need
Axis to figure out what method to invoke. There's only one method
available.

I tried the 1st possible solution mentioned below,
1. Remove the dispach phase from your Axis2 configuration and write
your own MessageReceiver (which removes the need for an AxisOperation
to be identified)

I wrote a new message receiver but ran into bigger problems. If I remove
the actionMapping tags in the service's deployment descriptor, my new
message receiver never gets called. I receive a fault with a response code
500 with no additional information to help diagnose where the problem
occured. Nothing showed up in Tomcat's catalina.log.

Same problem seems to occur if the wsa:Action header value in the request
doesn't match the set of actionMapping tags for the service.

I tried commenting out the dispatch phase as stated as a suggestion without
any difference in behavior.

Suggestions? Is there an easier way to accomplish this? It still appears to
me to be an Axis design issue. Axis should not force declaration of
specific wsa:Action values for a message based service. It could be an
option, but should not be required. Wildcard or similar should be
supported.





 David Illsley
 [EMAIL PROTECTED]
 il.comTo
   axis-user@ws.apache.org
 07/26/06 02:00 PM  cc

   Subject
 Please respond to Re: Axis1 style=message in Axis2?
 [EMAIL PROTECTED]
  he.org








On 26/07/06, David Melgar [EMAIL PROTECTED] wrote:


 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?

What you are trying to do sounds pretty advanced (given that you're
dynamically generating WSDL).

There are a couple of options I can think of...
1. Remove the dispach phase from your Axis2 configuration and write
your own MessageReceiver (which removes the need for an AxisOperation
to be identified)
2. Define a single operation for the service and add a handler to the
DispatchPhase which selects that operation when the
RawXMLInOutReceiver will then invoke on the endpoint object.

David

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]





--
Ajith Ranabahu

-
To unsubscribe, e

Re: Axis1 style=message in Axis2?

2006-07-26 Thread David Melgar

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



Please respond to
axis-user@ws.apache.org





To
axis-user@ws.apache.org


cc



Subject
Re: Axis1 style=message
in Axis2?








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]




RE: Axis1 style=message in Axis2?

2006-07-26 Thread Bhatra, Junaid








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 havent 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. Im 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: axis-user@ws.apache.org
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 
  
   

Please
respond to
axis-user@ws.apache.org

   
  
  
  
  
  
   

To


axis-user@ws.apache.org


   
   

cc




   
   

Subject


Re: Axis1 style=message in Axis2?

   
  
  
  
   






   
  
  
  
 





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]










Re: Axis1 style=message in Axis2?

2006-07-26 Thread David Illsley

On 26/07/06, David Melgar [EMAIL PROTECTED] wrote:



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?


What you are trying to do sounds pretty advanced (given that you're
dynamically generating WSDL).

There are a couple of options I can think of...
1. Remove the dispach phase from your Axis2 configuration and write
your own MessageReceiver (which removes the need for an AxisOperation
to be identified)
2. Define a single operation for the service and add a handler to the
DispatchPhase which selects that operation when the
RawXMLInOutReceiver will then invoke on the endpoint object.

David

-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



Re: Axis1 style=message in Axis2?

2006-07-25 Thread Anne Thomas Manes

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]



Axis1 style=message in Axis2?

2006-07-24 Thread David Melgar

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