axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Deepal Jayasinghe (JIRA)" <>
Subject [jira] [Resolved] (AXIS2-5672) Addressing Action attributes are parsed incorrectly when deploying service from WSDL
Date Thu, 02 Jul 2015 02:40:04 GMT


Deepal Jayasinghe resolved AXIS2-5672.
       Resolution: Fixed
    Fix Version/s: nightly

Applied the patch 

> Addressing Action attributes are parsed incorrectly when deploying service from WSDL
> ------------------------------------------------------------------------------------
>                 Key: AXIS2-5672
>                 URL:
>             Project: Axis2
>          Issue Type: Bug
>          Components: Addressing, kernel
>    Affects Versions: 1.6.2
>            Reporter: Detelin Yordanov
>             Fix For: nightly
>         Attachments: axis2_patch.txt, axis2_patch.txt
> When creating a web service out of a WSDL which contains WS-Addressing Action attributes
with format <prefix>:<value>, Axis2 will strip the "<prefix>:" part if the
WSDL document contains a namespace declaration for <prefix> on some of the parent elements.
For example, if the definition element contains the following namespace declaration:
> xmlns:http=""
> And operation's input contains a wsaw:Action that starts with "http:":
> <wsdl:input message="ns:getVersionRequest" wsam:Action="http://axisversion.sample/VersionPortType/getVersionWSAMRequest"/>
> Then the result would be that the input AxisMessage is configured with an incorrect Action
value of "//axisversion.sample/VersionPortType/getVersionWSAMRequest".
> I'm attaching a patch that contains a test case to verify this behavior - please see
WSDL11ToAxisServiceBuilderTest.testGetVersionActions() method.
> I investigated the issue and I think this is caused by WSDL4J assuming wsaw:Action attribute's
value is of QName type and thus tries to parse it as such, expecting that it might have a
namespace prefix. I think this is wrong and WSDL4J has to be configured to process wsaw:Action
values as simple literals rather than QNames. I have added a utility method for that, see:
> WSDLUtil.registerDefaultExtensionAttributeTypes
> This will register all WS-Addressing Action attribute flavors (for each known namespace)
in WSDL ExtensionRegistry to be of String type. For this to work, the so configured ExtensionRegistry
must be used whenever a WSDLReader is created, therefore I added an additional utility method
to be used for creating WSDLReader instances:
> WSDLUtil.newWSDLReaderWithPopulatedExtensionRegistry
> I have replaced the regular WSDLFactory.newWSDLReader calls throughout Axis2 codebase
with this new factory method.
> While doing this, I noticed that in the past this issue might have been identified and
fixed in Axis2 CodeGenerationEngine alone:
> The attached patch is basically similar, but it would fix all other places in Axis2 code
where WSDLReader instance is created.

This message was sent by Atlassian JIRA

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

View raw message