Historically, the recommended way to deploy Axis services was based on the following procedure:

  1. Deploy the Axis WAR to a servlet container or application server.
  2. Add the Web service code to the WEB-INF/classes or WEB-INF/lib folder in the (exploded) Axis WAR.
  3. Create a WSDD file (or use the WSDD file generated by wsdl2java) and deploy it using the admin client. This will add the definitions contained in the submitted WSDD file to the server-config.wsdd file.

This procedure is described in more details in the Installation Guide.

However, nowadays the preferred approach - especially for enterprise projects - is to have a build process that packages the Web service(s) together with the Axis libraries into a WAR that is then deployed to the application server. This requires that the server-config.wsdd file is constructed before the WAR is built. With Axis 1.4, developers would typically maintain that file by hand, either by editing it directly (and copying the contents of WSDD files created by wsdl2java) or by using e.g. the Axis 1.4 tooling in Eclipse. The file is then added to the project files under source control so that it is available during the build.

This approach is suboptimal because in most cases the server-config.wsdd file contains content generated by wsdl2java. That content should not be under source control. Instead, the server-config.wsdd file should be assembled automatically during the build process, based on the output of wsdl2java.

This is exactly what the wsdd-maven-plugin does: it takes a set of WSDD files and merges them into a single output WSDD. The input WSDD files are typically generated by wsdl2java-maven-plugin, but the set may also contain manually created WSDD files, e.g. to configure custom handlers or to override configuration properties.