Uploaded image for project: 'Axis2'
  1. Axis2
  2. AXIS2-3223

Plug JAX-WS / MDQ deployment into Axis2 deployment model


    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: 1.4
    • Fix Version/s: 1.4
    • Component/s: jaxws
    • Labels:


      Currently the metadata processing for JAXWS (i.e. the creation of the metadata description hierachy based on annotations and WSDL) is not integrated into the Axis2 deployment model. The JAXWS unit tests are using a deprecated factory method which builds the desription hierarchy when an inbound request for a service is received. The deprecated method DescriptionFactory.createServiceDescriptionFromServiceImpl(implClass, axisSvc) is called from EndpointController.getEndpointDescription. This deprecated method causes obsolete code paths to be executed and does not go down code paths that are used for actual server integration.

      Actual server integration (for example in Geronimo) plugs the JAXWS metadata processing into the server's deployment logic. This is done by creating DescriptionBuilderComposite objects and using those DBCs to create the JAXWS/Metadata description hierarchy. The processes of creating the JAXWS descrition hierachy also creates the Axis2 description hierachy (e.g. AxisService and such) based on annotations (and/or WSDL).

      I think the following needs to be done:
      1. Add a plug point in the Axis2 deployment logic that allows plugging in to the deployment logic, or perhaps overridding it completely
      2. In the JAXWS integration-level tests (which require a running server), the plugpoint or override would create the JAXWS and associated Axis2 description hierachy during application deployment.
      3. The logic in EndpointController.getEndpointDescription should change to consider not finding the JAXWS description hierachy an error and reject the inbound request. The deprecated method DescriptionFactory.createServiceDescriptionFromServiceImpl(implClass, axisSvc) should be removed.
      4. Note that there is a convenience method DescriptionFactory.createServiceDescription(Class) that will take an implementation class and create the DBCs using relfection which may be helpful.


          Issue Links



              • Assignee:
                woodroy Roy A. Wood Jr.
                barrettj Jeff Barrett
              • Votes:
                0 Vote for this issue
                1 Start watching this issue


                • Created: