[ https://issues.apache.org/jira/browse/AXIS2-5672?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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: https://issues.apache.org/jira/browse/AXIS2-5672 > 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="http://schemas.xmlsoap.org/wsdl/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: > https://svn.apache.org/viewvc?view=revision&revision=1003032 > 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 (v6.3.4#6332) --------------------------------------------------------------------- To unsubscribe, e-mail: java-dev-unsubscr...@axis.apache.org For additional commands, e-mail: java-dev-h...@axis.apache.org