Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Anne Thomas Manes
It's best to avoid overloaded methods. They are not allowed by WS-I
Basic Profile or by SOAP 1.2.

The goal of WS-I is to help make interoperability feasible. A few
years ago, basic interoperability between SOAP stacks was extremely
difficult. The SOAP 1.1 and WSDL 1.1 specs were never vetted by a
standards body. They contain numerous ambiguities, inconsistencies,
and even a few errors. Without solid specifications, vendors had to
fill in the blanks. It was a mess.

When WS-I defines a profile, it sifts through the specifications,
identifies any possible opportunity for vendor-specific
interpretation, and defines rules that clarify exactly how it should
be interpreted. It also addresses issues related to using multiple
specifications in concert, such as WS-ReliableMessaging and
WS-Security (the upcoming Reliable Secure Profile).

Unfortunately, WS-I decided to punt in regards to XML Schema
guidelines. Issues related to proper processing of nulls vs
zero-occurring elements, abstract types, substitution groups, choice,
union, etc, have never been addressed. And these structures still
cause a lot of interop issues. As a general rule, it's best to keep
your schemas as simple as possible. The reason you're using SOAP in
the first place is to support interop. (If not, you should stick with
RMI.).

Now -- I understand your desire to use overloaded methods in Java.
Theoretically, a SOAP framework should provide a clean separation of
concern between the external interface (WSDL and XML Schema) and the
internal implementation, and you should be able to map the separate
WSDL operations to a set of overloaded methods in your Java class. But
that would require a lot more finesse on your part when configuring
the service. The "preferred" development model maps a single operation
to a single method.

Axis2 does give you a fair amount of flexibility in the way you define
your message signature, using URL, SOAPAction, wsa:Action, and element
QName...

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> I guess this is really not an Axis discussion per se, but something that
> interests me as I attempt to learn more about developing web services.
> What is the goal of WS-I?  It is to attempt to ensure that clients
> interpret the wsdl and schemas the same way?  It doesn't really matter
> how the server side handles it because that is within your control.  I
> guess the model I am going after is an overloaded method.  If I follow
> the operation method is it possible to assign different operations to
> the same method of my service endpoint class?  Is this done by assigning
> the same value for the soapAction attribute of different soap:operation
> elements in the binding element of the wsdl?
>
> Thanks for participating in the discussion.  I am learning.  Also, if
> you have suggestions for better understading WS-I issues/guidelines...
> I am open and eager to digesting them.
>
> Mark
>
> Walker, Jeff wrote:
> > Anne,
> > I hear what you say. On reflection your right, multiple operations are
> > safer, but type derivation is allowed in schema, and consequently, in
> > wsdl/soap. So I thought it was worth offering as an alternative.
> > -jeff
> >
> >
> >
> > -Original Message-
> > From: Anne Thomas Manes [mailto:[EMAIL PROTECTED]
> > Sent: Wednesday, September 12, 2007 2:06 PM
> > To: axis-user@ws.apache.org; [EMAIL PROTECTED]
> > Subject: Re: axis 1 - message style service and custom wsdl file
> >
> > The SOAP spec doesn't specify how to deal with substitution groups;
> > therefore, different frameworks handle them in different ways. (i.e.,
> > interoperability problems).
> >
> > But I also recommend avoiding type derivation. Rich OO environments
> > like Java can handle them easily, but it's a different issue when
> > dealing with other languages.
> >
> > A multiple operation model is the safer, more interoperable solution.
> >
> > Anne
> >
> > On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> >
> >> Hi Jeff,
> >>
> >> So, are you saying ditch the substitution group and just go with type
> >> derivation?  If I declare the base type abstract will this still work?
> >> In this model the wrapped element would always have the same name, but
> >>
> > I
> >
> >> could determine the type and take the appropriate actions?  So is it
> >>
> > the
> >
> >> fact that a substitution group allows the elements be have different
> >> names that makes it less interoperable?  This is a much easier change
> >> then moving to a multiple operation model.  I like the ability to keep
> >>
> > a
> >
> >> single

Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Mark Airey
I guess this is really not an Axis discussion per se, but something that 
interests me as I attempt to learn more about developing web services.  
What is the goal of WS-I?  It is to attempt to ensure that clients 
interpret the wsdl and schemas the same way?  It doesn't really matter 
how the server side handles it because that is within your control.  I 
guess the model I am going after is an overloaded method.  If I follow 
the operation method is it possible to assign different operations to 
the same method of my service endpoint class?  Is this done by assigning 
the same value for the soapAction attribute of different soap:operation 
elements in the binding element of the wsdl? 

Thanks for participating in the discussion.  I am learning.  Also, if 
you have suggestions for better understading WS-I issues/guidelines...  
I am open and eager to digesting them.


Mark

Walker, Jeff wrote:

Anne,
I hear what you say. On reflection your right, multiple operations are
safer, but type derivation is allowed in schema, and consequently, in
wsdl/soap. So I thought it was worth offering as an alternative.
-jeff

 


-Original Message-
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 12, 2007 2:06 PM

To: axis-user@ws.apache.org; [EMAIL PROTECTED]
Subject: Re: axis 1 - message style service and custom wsdl file

The SOAP spec doesn't specify how to deal with substitution groups;
therefore, different frameworks handle them in different ways. (i.e.,
interoperability problems).

But I also recommend avoiding type derivation. Rich OO environments
like Java can handle them easily, but it's a different issue when
dealing with other languages.

A multiple operation model is the safer, more interoperable solution.

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
  

Hi Jeff,

So, are you saying ditch the substitution group and just go with type
derivation?  If I declare the base type abstract will this still work?
In this model the wrapped element would always have the same name, but


I
  

could determine the type and take the appropriate actions?  So is it


the
  

fact that a substitution group allows the elements be have different
names that makes it less interoperable?  This is a much easier change
then moving to a multiple operation model.  I like the ability to keep


a
  

single operation and extend it by adding request types..  This
service is essentially a wrapper around a library of DataFactory
implementations.

Thanks,
Mark


Walker, Jeff wrote:


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

service
  

sees the requestA element, validates it against the proper schema,
  

and
  

instantiates ClassA to gather and return data.  If  the request is
someOtherArg
  

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 

RE: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Walker, Jeff
Anne,
I hear what you say. On reflection your right, multiple operations are
safer, but type derivation is allowed in schema, and consequently, in
wsdl/soap. So I thought it was worth offering as an alternative.
-jeff

 

-Original Message-
From: Anne Thomas Manes [mailto:[EMAIL PROTECTED] 
Sent: Wednesday, September 12, 2007 2:06 PM
To: axis-user@ws.apache.org; [EMAIL PROTECTED]
Subject: Re: axis 1 - message style service and custom wsdl file

The SOAP spec doesn't specify how to deal with substitution groups;
therefore, different frameworks handle them in different ways. (i.e.,
interoperability problems).

But I also recommend avoiding type derivation. Rich OO environments
like Java can handle them easily, but it's a different issue when
dealing with other languages.

A multiple operation model is the safer, more interoperable solution.

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> Hi Jeff,
>
> So, are you saying ditch the substitution group and just go with type
> derivation?  If I declare the base type abstract will this still work?
> In this model the wrapped element would always have the same name, but
I
> could determine the type and take the appropriate actions?  So is it
the
> fact that a substitution group allows the elements be have different
> names that makes it less interoperable?  This is a much easier change
> then moving to a multiple operation model.  I like the ability to keep
a
> single operation and extend it by adding request types..  This
> service is essentially a wrapper around a library of DataFactory
> implementations.
>
> Thanks,
> Mark
>
>
> Walker, Jeff wrote:
> > 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: axis-user@ws.apache.org
> > 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
> > someArg my
service
> >
> > sees the requestA element, validates it against the proper schema,
and
> > instantiates ClassA to gather and return data.  If  the request is
> > someOtherArg
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: 

Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Anne Thomas Manes
The SOAP spec doesn't specify how to deal with substitution groups;
therefore, different frameworks handle them in different ways. (i.e.,
interoperability problems).

But I also recommend avoiding type derivation. Rich OO environments
like Java can handle them easily, but it's a different issue when
dealing with other languages.

A multiple operation model is the safer, more interoperable solution.

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> Hi Jeff,
>
> So, are you saying ditch the substitution group and just go with type
> derivation?  If I declare the base type abstract will this still work?
> In this model the wrapped element would always have the same name, but I
> could determine the type and take the appropriate actions?  So is it the
> fact that a substitution group allows the elements be have different
> names that makes it less interoperable?  This is a much easier change
> then moving to a multiple operation model.  I like the ability to keep a
> single operation and extend it by adding request types..  This
> service is essentially a wrapper around a library of DataFactory
> implementations.
>
> Thanks,
> Mark
>
>
> Walker, Jeff wrote:
> > 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: axis-user@ws.apache.org
> > 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
> > someArg my service
> >
> > sees the requestA element, validates it against the proper schema, and
> > instantiates ClassA to gather and return data.  If  the request is
> > someOtherArg 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]
>
>

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



Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Mark Airey

Hi Jeff,

So, are you saying ditch the substitution group and just go with type 
derivation?  If I declare the base type abstract will this still work?  
In this model the wrapped element would always have the same name, but I 
could determine the type and take the appropriate actions?  So is it the 
fact that a substitution group allows the elements be have different 
names that makes it less interoperable?  This is a much easier change 
then moving to a multiple operation model.  I like the ability to keep a 
single operation and extend it by adding request types..  This 
service is essentially a wrapper around a library of DataFactory 
implementations.


Thanks,
Mark


Walker, Jeff wrote:

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: axis-user@ws.apache.org
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 
someArg my service


sees the requestA element, validates it against the proper schema, and 
instantiates ClassA to gather and return data.  If  the request is 
someOtherArg 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]



RE: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Walker, Jeff
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: axis-user@ws.apache.org
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 
someArg my service

sees the requestA element, validates it against the proper schema, and 
instantiates ClassA to gather and return data.  If  the request is 
someOtherArg 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]



Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Anne Thomas Manes
Mark,

If the request contains:


  
someArg
  


Then a WS-I compliant server will use the yourNamespace}submitDocument
element as the message signature and dispatch it accordingly.

If you have defined the contents of the  element to be
a choice or a substitution group, then it will not qualify as wrapped
doc/literal. The wrapped convention requires that the wrapper element
be defined as a .

My guess is that you will experience a lot of interop issues with a
service like this.
You would do better to define two separate operations for "requestA"
and "requestB".

Anne

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> 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
> someArg my service
> sees the requestA element, validates it against the proper schema, and
> instantiates ClassA to gather and return data.  If  the request is
> someOtherArg 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]



Re: axis 1 - message style service and custom wsdl file

2007-09-12 Thread Mark Airey

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 
someArg my service 
sees the requestA element, validates it against the proper schema, and 
instantiates ClassA to gather and return data.  If  the request is 
someOtherArg 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]



Re: axis 1 - message style service and custom wsdl file

2007-09-10 Thread Oliver Charlet




got it. thanks a lot!
:oliver
---
oliver charlet
software development

11-041 Olsztyn, Poland

[EMAIL PROTECTED]
---


Anne Thomas Manes schrieb:

  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

On 9/10/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:
  
  
 thanks Anne for your comments.

 re. 2 - : is that a standard? I see, that axis generates a wsdl with a
wrapper tag for each operation in the service (in case of a message style
implementation). But is that a documented must do? I understand the
advantages, but still think this is a little overhead, if I just want to
switch from the usual binding to a raw xml implementation. Obviously the
wsdl should be pure semantics and not depending upon the style of
implementation.
 ---
oliver charlet
software development

11-041 Olsztyn, Poland

[EMAIL PROTECTED]
---


 Anne Thomas Manes schrieb:
 Some more guidance on this:

There are a couple of reasons why you might have to use a wrapper element:
1- If you want to send more than one root element in a single SOAP message
2- If you want your service to expose more than one operation

Hope this helps,

Anne

On 9/7/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:


 Oliver,

Your WSDL message definition is not valid.

It should be:


 


Alternatively, you might want to define a wrapper element for your
message content, in which case you would define the message thus:


 


and you would also have to define the operationA element in your
 section:


 
 
 


Anne

On 9/7/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:


 Hi y'all,

I am having trouble to get to work a setup that seems to be rare, but
which for me is rather practical:

1) I have a wsdl, that defines a schema for the input of a message, i.e.
I want the content of the soap body to of that schema. This wsdl is used
to communicate with the users of the service - of course.
2) I don't want a Java Binding, because I simply want to take the raw
XML from the body and do something with it (like serializing to filesystem).
3) So I create a "bottom up" service implementation, that uses the
message style Element[] operationA(Element[] elms) signature.
4) I use the wsdlFile tag to serve the original wsdl to the user, when
he asks for it using ...?wsdl on the Service URL

now the problem:
When I do 3), Axis would theoretically create a generated wsdl, that
would define my operation message part as:

 

that means, that in my case the actual payload of the incoming message
would need to be inserted into the operationA-Tag that was defined by
axis at the time of deployment as shown above.
After I do 4), axis still expects that Tag "operationA" to be inside the
soap body. But now I have a service that does not reflect the published
wsdl, which after 4) is the original one defining the payload to be an
instance of the schema inside it - without the operationA-Tag.
That means, that any user trying to access my service, reading the
public wsdl will get an error, because axis expects a different soap
message.

This is a little complicated to explain - but still I hope, that someone
can give me a hint on how to do this the right way.
Again here is what I want to achieve:
- have an initial wsdl
- create a "generic" service implementation handling pure XML, avoiding
generation of XML-JAVA bindings
- publish the initial wsdl instead of the generated one
- make this scenario work...

Thanks for any help
:oliver

--
---
oliver charlet
software development

11-041 Olsztyn, Poland

[EMAIL PROTECTED]
---


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


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

  
  

Re: axis 1 - message style service and custom wsdl file

2007-09-10 Thread Anne Thomas Manes
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

On 9/10/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:
>
>  thanks Anne for your comments.
>
>  re. 2 - : is that a standard? I see, that axis generates a wsdl with a
> wrapper tag for each operation in the service (in case of a message style
> implementation). But is that a documented must do? I understand the
> advantages, but still think this is a little overhead, if I just want to
> switch from the usual binding to a raw xml implementation. Obviously the
> wsdl should be pure semantics and not depending upon the style of
> implementation.
>  ---
> oliver charlet
> software development
>
> 11-041 Olsztyn, Poland
>
> [EMAIL PROTECTED]
> ---
>
>
>  Anne Thomas Manes schrieb:
>  Some more guidance on this:
>
> There are a couple of reasons why you might have to use a wrapper element:
> 1- If you want to send more than one root element in a single SOAP message
> 2- If you want your service to expose more than one operation
>
> Hope this helps,
>
> Anne
>
> On 9/7/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
>
>
>  Oliver,
>
> Your WSDL message definition is not valid.
>
> It should be:
>
> 
>  
> 
>
> Alternatively, you might want to define a wrapper element for your
> message content, in which case you would define the message thus:
>
> 
>  
> 
>
> and you would also have to define the operationA element in your
>  section:
>
> 
>  
>  
>  
> 
>
> Anne
>
> On 9/7/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:
>
>
>  Hi y'all,
>
> I am having trouble to get to work a setup that seems to be rare, but
> which for me is rather practical:
>
> 1) I have a wsdl, that defines a schema for the input of a message, i.e.
> I want the content of the soap body to of that schema. This wsdl is used
> to communicate with the users of the service - of course.
> 2) I don't want a Java Binding, because I simply want to take the raw
> XML from the body and do something with it (like serializing to filesystem).
> 3) So I create a "bottom up" service implementation, that uses the
> message style Element[] operationA(Element[] elms) signature.
> 4) I use the wsdlFile tag to serve the original wsdl to the user, when
> he asks for it using ...?wsdl on the Service URL
>
> now the problem:
> When I do 3), Axis would theoretically create a generated wsdl, that
> would define my operation message part as:
> 
>  
> 
> that means, that in my case the actual payload of the incoming message
> would need to be inserted into the operationA-Tag that was defined by
> axis at the time of deployment as shown above.
> After I do 4), axis still expects that Tag "operationA" to be inside the
> soap body. But now I have a service that does not reflect the published
> wsdl, which after 4) is the original one defining the payload to be an
> instance of the schema inside it - without the operationA-Tag.
> That means, that any user trying to access my service, reading the
> public wsdl will get an error, because axis expects a different soap
> message.
>
> This is a little complicated to explain - but still I hope, that someone
> can give me a hint on how to do this the right way.
> Again here is what I want to achieve:
> - have an initial wsdl
> - create a "generic" service implementation handling pure XML, avoiding
> generation of XML-JAVA bindings
> - publish the initial wsdl instead of the generated one
> - make this scenario work...
>
> Thanks for any help
> :oliver
>
> --
> ---
> oliver charlet
> software development
>
> 11-041 Olsztyn, Poland
>
> [EMAIL PROTECTED]
> ---
>
>
> -
> 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]
>
>
> -
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

Re: axis 1 - message style service and custom wsdl file

2007-09-10 Thread Oliver Charlet




thanks Anne for your comments.

re. 2 - : is that a standard? I see, that axis generates a wsdl with a
wrapper tag for each operation in the service (in case of a message
style implementation). But is that a documented must do? I understand
the advantages, but still think this is a little overhead, if I just
want to switch from the usual binding to a raw xml implementation.
Obviously the wsdl should be pure semantics and not depending upon the
style of implementation.
---
oliver charlet
software development

11-041 Olsztyn, Poland

[EMAIL PROTECTED]
---


Anne Thomas Manes schrieb:

  Some more guidance on this:

There are a couple of reasons why you might have to use a wrapper element:
1- If you want to send more than one root element in a single SOAP message
2- If you want your service to expose more than one operation

Hope this helps,

Anne

On 9/7/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
  
  
Oliver,

Your WSDL message definition is not valid.

It should be:


   


Alternatively, you might want to define a wrapper element for your
message content, in which case you would define the message thus:


   


and you would also have to define the operationA element in your
 section:


  

  


Anne

On 9/7/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:


  Hi y'all,

I am having trouble to get to work a setup that seems to be rare, but
which for me is rather practical:

1) I have a wsdl, that defines a schema for the input of a message, i.e.
I want the content of the soap body to of that schema. This wsdl is used
to communicate with the users of the service - of course.
2) I don't want a Java Binding, because I simply want to take the raw
XML from the body and do something with it (like serializing to filesystem).
3) So I create a "bottom up" service implementation, that uses the
message style Element[] operationA(Element[] elms) signature.
4) I use the wsdlFile tag to serve the original wsdl to the user, when
he asks for it using ...?wsdl on the Service URL

now the problem:
When I do 3), Axis would theoretically create a generated wsdl, that
would define my operation message part as:



that means, that in my case the actual payload of the incoming message
would need to be inserted into the operationA-Tag that was defined by
axis at the time of deployment as shown above.
After I do 4), axis still expects that Tag "operationA" to be inside the
soap body. But now I have a service that does not reflect the published
wsdl, which after 4) is the original one defining the payload to be an
instance of the schema inside it - without the operationA-Tag.
That means, that any user trying to access my service, reading the
public wsdl will get an error, because axis expects a different soap
message.

This is a little complicated to explain - but still I hope, that someone
can give me a hint on how to do this the right way.
Again here is what I want to achieve:
- have an initial wsdl
- create a "generic" service implementation handling pure XML, avoiding
generation of XML-JAVA bindings
- publish the initial wsdl instead of the generated one
- make this scenario work...

Thanks for any help
:oliver

--
---
oliver charlet
software development

11-041 Olsztyn, Poland

[EMAIL PROTECTED]
---


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

  




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



Re: axis 1 - message style service and custom wsdl file

2007-09-07 Thread Anne Thomas Manes
Oliver,

Your WSDL message definition is not valid.

It should be:


   


Alternatively, you might want to define a wrapper element for your
message content, in which case you would define the message thus:


   


and you would also have to define the operationA element in your
 section:


  

  


Anne

On 9/7/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:
> Hi y'all,
>
> I am having trouble to get to work a setup that seems to be rare, but
> which for me is rather practical:
>
> 1) I have a wsdl, that defines a schema for the input of a message, i.e.
> I want the content of the soap body to of that schema. This wsdl is used
> to communicate with the users of the service - of course.
> 2) I don't want a Java Binding, because I simply want to take the raw
> XML from the body and do something with it (like serializing to filesystem).
> 3) So I create a "bottom up" service implementation, that uses the
> message style Element[] operationA(Element[] elms) signature.
> 4) I use the wsdlFile tag to serve the original wsdl to the user, when
> he asks for it using ...?wsdl on the Service URL
>
> now the problem:
> When I do 3), Axis would theoretically create a generated wsdl, that
> would define my operation message part as:
> 
> 
> 
> that means, that in my case the actual payload of the incoming message
> would need to be inserted into the operationA-Tag that was defined by
> axis at the time of deployment as shown above.
> After I do 4), axis still expects that Tag "operationA" to be inside the
> soap body. But now I have a service that does not reflect the published
> wsdl, which after 4) is the original one defining the payload to be an
> instance of the schema inside it - without the operationA-Tag.
> That means, that any user trying to access my service, reading the
> public wsdl will get an error, because axis expects a different soap
> message.
>
> This is a little complicated to explain - but still I hope, that someone
> can give me a hint on how to do this the right way.
> Again here is what I want to achieve:
> - have an initial wsdl
> - create a "generic" service implementation handling pure XML, avoiding
> generation of XML-JAVA bindings
> - publish the initial wsdl instead of the generated one
> - make this scenario work...
>
> Thanks for any help
> :oliver
>
> --
> ---
> oliver charlet
> software development
>
> 11-041 Olsztyn, Poland
>
> [EMAIL PROTECTED]
> ---
>
>
> -
> 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: axis 1 - message style service and custom wsdl file

2007-09-07 Thread Anne Thomas Manes
Some more guidance on this:

There are a couple of reasons why you might have to use a wrapper element:
1- If you want to send more than one root element in a single SOAP message
2- If you want your service to expose more than one operation

Hope this helps,

Anne

On 9/7/07, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
> Oliver,
>
> Your WSDL message definition is not valid.
>
> It should be:
>
> 
>
> 
>
> Alternatively, you might want to define a wrapper element for your
> message content, in which case you would define the message thus:
>
> 
>
> 
>
> and you would also have to define the operationA element in your
>  section:
>
> 
>   
> 
>   
> 
>
> Anne
>
> On 9/7/07, Oliver Charlet <[EMAIL PROTECTED]> wrote:
> > Hi y'all,
> >
> > I am having trouble to get to work a setup that seems to be rare, but
> > which for me is rather practical:
> >
> > 1) I have a wsdl, that defines a schema for the input of a message, i.e.
> > I want the content of the soap body to of that schema. This wsdl is used
> > to communicate with the users of the service - of course.
> > 2) I don't want a Java Binding, because I simply want to take the raw
> > XML from the body and do something with it (like serializing to filesystem).
> > 3) So I create a "bottom up" service implementation, that uses the
> > message style Element[] operationA(Element[] elms) signature.
> > 4) I use the wsdlFile tag to serve the original wsdl to the user, when
> > he asks for it using ...?wsdl on the Service URL
> >
> > now the problem:
> > When I do 3), Axis would theoretically create a generated wsdl, that
> > would define my operation message part as:
> > 
> > 
> > 
> > that means, that in my case the actual payload of the incoming message
> > would need to be inserted into the operationA-Tag that was defined by
> > axis at the time of deployment as shown above.
> > After I do 4), axis still expects that Tag "operationA" to be inside the
> > soap body. But now I have a service that does not reflect the published
> > wsdl, which after 4) is the original one defining the payload to be an
> > instance of the schema inside it - without the operationA-Tag.
> > That means, that any user trying to access my service, reading the
> > public wsdl will get an error, because axis expects a different soap
> > message.
> >
> > This is a little complicated to explain - but still I hope, that someone
> > can give me a hint on how to do this the right way.
> > Again here is what I want to achieve:
> > - have an initial wsdl
> > - create a "generic" service implementation handling pure XML, avoiding
> > generation of XML-JAVA bindings
> > - publish the initial wsdl instead of the generated one
> > - make this scenario work...
> >
> > Thanks for any help
> > :oliver
> >
> > --
> > ---
> > oliver charlet
> > software development
> >
> > 11-041 Olsztyn, Poland
> >
> > [EMAIL PROTECTED]
> > ---
> >
> >
> > -
> > 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]