So,
Setup the operation to take a BaseRequest and a return a BaseResponse
type in the portType section of your wsdl file. Make sure it isn't
abstract in the schema, and then use the extension mechanism in schema
to create your RequestA and RequestB complex types extending from that
BaseRequest. The request object in your implementation can be checked
using the instanceof operator. This way, the Axis engine does all of the
schema validation work, and you get to play with the Java object you
expected, after you cast it down, of course.
-jeff
 

-----Original Message-----
From: Mark Airey [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 12, 2007 10:27 AM
To: [email protected]
Subject: Re: axis 1 - message style service and custom wsdl file

Hi,

  This is something that I have been attempting to understand myself.  I

am developing a wrapped style service that publishes one operation, but 
this operation looks at the wrapped element to determine what to do.  
For example if the request is 
<submitDocument><requestA>someArg</requestA></submitDocument> my service

sees the requestA element, validates it against the proper schema, and 
instantiates ClassA to gather and return data.  If  the request is 
<submitDocument><requestB>someOtherArg</requestB></submitDocument> my 
service sees the requestB element, validates it against the proper 
schema, and instantiates ClassB to gather and return data.  I have 
defined a substitution group for the valid request elements.  Is this 
WS-I compliant?  It works for me, but I have had some trouble getting an

automated test tool to generate a client it can use via the wsdl.

Mark

> Oliver,
>
> The WS-I Basic Profile specifies that each operation must have a
> unique signature. (The SOAP and WSDL specifications don't address this
> issue, therefore it's unspecified.) On a practical level, the SOAP
> engine requires some means to determine how to dispatch the request,
> therefore it needs some type of signature.
>
> Per the WS-I BP, an operation's signature is defined as the qualified
> name of the child element of the SOAP Body element. If you define the
> input message part for one of your operations as element="xsd:any",
> you would have no way to differentiate that operation from any other
> operation. Therefore, if you want to expose multiple operations in the
> service, you must define unique wrapper elements for each one.
>
> Axis follows the WS-I BP signature requirements. Axis2 allows for
> other methods to specify the signature, such as the SOAPAction header
> or a WSA Action value.
>
> Anne


---------------------------------------------------------------------
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]

Reply via email to