axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Amila Chinthaka Suriarachchi (JIRA)" <>
Subject [jira] Commented: (AXIS2-3457) Incorrect Exception in WSDL11ToAxisServiceBuilder
Date Fri, 18 Jan 2008 04:56:33 GMT


Amila Chinthaka Suriarachchi commented on AXIS2-3457:

see 675
if (isSetMessageQNames) {
                    addQNameReference(axisInMessage, wsdl4jOperation,

and addQNameReference Method

if (isWrapped) {
            // we have already validated and process the qname references
            // so set it here
            // The schema for this should be already made ! Find the
            // QName from
            // the list and add it - the name for this is just the
            message.setElementQName((QName) resolvedRpcWrappedElementMap
                    (QName) resolvedRpcWrappedElementMap.get(rpcOperationName),

This is what happens. in the findWrappableBindingOperations method we find the wrappable operations
and put them to wrappableOperations list. And at the createSchemaForPorttype method populate
the resolvedRpcWrappedElementMap.

So it always expect a entry in the later map for all wrappable operations. so simply ignoring
the exception would cause a problem here.

On the other hand suspending that exception means we allow people to use element attribute
at the message part level. As I told you this is not something that spec has not clearly mentioned.
at least I could not find any place.

So my suggestion is to throw that exception. But add a meaning full message.
we can simply pass another boolean attribute to the createSchemaForPorttype method
(like boolean isHttpBinding) and if so change the exception message into
"Axis2 only supports type attribute at the part level for Http Binding".

> Incorrect Exception in WSDL11ToAxisServiceBuilder
> -------------------------------------------------
>                 Key: AXIS2-3457
>                 URL:
>             Project: Axis 2.0 (Axis2)
>          Issue Type: Bug
>            Reporter: Rich Scheuerle
>            Assignee: Rich Scheuerle
> Background
> WSDL11ToAxisServiceBuilder contains code to produce schema "wrapper" code  for selected
BindingOperations (i.e. RPC literal bindings).
> Problem:
> I have a WSDL with several bindings, one of them is an HTTP Binding.  The current code
determines that its BindingOperations require wrappering, but
> during the schema generation it throws the following error because it incorrectly assumes
that the BindingOperation is RPC/literal.
>  org.apache.axis2.description.WSDL11ToAxisServiceBuilder populateService RPC-literal
type message part Body should have a type attribute 
> Proposed Solution:
> I have just started working on this issue.  My thought is to introduce a private inner
class BindingOperationEntry.  The BindingOperationEntry will contain the BindingOperation
and information about the BindingOperation (i.e. isRPC()).  
> The findWrappableBindingOperations(Binding binding) method will be changed to return
a List of BindingOperationEntry instead of  List of BindingOperation.  Later processing can
then easily distinguish between RPC and HTTP usage.  
> In addition, I am going to upgrade the exception message (which confused the user) and
add some additional trace.
> This solution has minimal impact on the existing structure of WSDL11ToAxisServiceBuilder,
which is why I pursuing this approach.
> Comments ?

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message