Define the custom namespace to package mapping of generated file from wsdl - Axis2 eclipse

13,770

You don't really have to modify wsdl to achieve this. If you are using Eclipse Helios Web service Client Wizard, On the second step (optional) where you specify output folder for generated source, there's a checkbox for 'Define custom mapping for namespace to package.'. Select that box and on the next form you can define your custom package mappings.

EDIT 1:

Link to the Official Documentation

EDIT 2:

WSDL

<wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:tns="http://mycompany.com/MyService.wsdl"
xmlns:scm="http://mycompany.com/MyService.xsd"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
targetNamespace="http://mycompany.com/MyService.wsdl">
...

For simple wsdl as shown above, custom mapping would look like as below.

http://mycompany.com/MyService.wsdl - com.mycompany.ws.workflow http://mycompany.com/MyService.xsd - com.mycompany.ws.workflow.schema

You can click Add and enter name-space and package names or you can store mapping in properties file and click import to add it all at once. I prefer properties file. Also you have to escape the name space URL and other special characters if you are going to use properties file. Your properties file should look similar to below.

nsmapping.properties

http\://mycompany.com/MyService.wsdl=com.mycompany.ws.workflow http\://mycompany.com/MyService.xsd=com.mycompany.ws.workflow.schema

Excerpt from official documentation.

The content of the properties file must be of the format namespace=package. You will need to escape some special characters in the properties files. For example http://someNamespace=somePackage should be http://someNamespace=somePackage. Otherwise, the colon (:) would be treated as delimiter resulting in trying to map http to //someNamespace=somePackage.

Share:
13,770
Bracha
Author by

Bracha

Updated on June 04, 2022

Comments

  • Bracha
    Bracha almost 2 years

    I have wsdl file in Eclipse and I am generating the client via axis2 plugin.

    The files are being generated to a package called com.mycompany.stub in source folder.

    I would like to change the package names of the generated source files to com.mycompany.ws.workflow

    Where can I do it in the wsdl file?

  • Bracha
    Bracha over 13 years
    can you provide an example for custom package mapping? what do I insert there?
  • sbo
    sbo over 10 years
    @TMan Where should I put the nsmapping.properties file?