Uploaded image for project: 'JBoss Web Services'
  1. JBoss Web Services
  2. JBWS-3138

Better support for local WSDL deployment configurations (e.g., wsimport -clientjar)


      Developers who must deploy to disconnected or closed network environments often have challenges creating local WSDL deployment configurations. This is especially true when they want to create a shared library or use a shared configuration that several projects must all use. For example, if there are several J2EE web applications and web services that are all clients of a particular web service, most developers end up copying all of the required WSDL content to the WEB-INF/wsdl folder of each project and then using the wsdlLocation attribute to specify the local WSDL files. This type of strategy is difficult to maintain, and the only other option is to create a shared OASIS XML catalog library. However, using a shared OASIS XML catalog library can be very challenging because of the details involved... putting a properly compiled schema catalog JAR (with a properly configured jax-ws-catalog.xml file) in the WEB-INF/lib and having the container use that JAR to resolve references by configuring the service endpoint with a reference that will be resolved by the JAR. For more information about that, see the last reference provided below, but the details are tricky to say the least, and some containers actually have problems with this type of deployment configuration.

      To help with this requirement, JAX-WS 2.2.2 RI has added a "-clientjar" option to the "wsimport" tool. This feature is extremely important to anyone facing these challenges, and offers a huge productivity boost, from several perspectives. For developers who know how to navigate the complexity of doing this, it helps by doing all of the labor intensive steps automatically (downloading the WSDL, creating correct resource references, compiling the JAR properly, annotating the binding properly, etc). For developers who do not know about these details, it is even more valuable because this option is not very well known, yet is something that should be a primary use case (supporting people on isolated networks). The requirement is often overlooked by the web services frameworks because they assume everyone will always have network access, but isolated networks are very common in certain communities.

      See the following for more references:

            rhn-engineering-ema Jim Ma
            raycardillo Raymond Cardillo (Inactive)
            1 Vote for this issue
            2 Start watching this issue