1 Reply Latest reply on May 1, 2005 10:58 AM by Scott Stark

    Cannot access context classloader during create step of web

    Thomas Diesler Master

      Currently the deployment of web service endpoints is based on notifications emmited by the TomcatDeployer, EJBDeployer respectivly.

      During the CREATE step is is neccessary to detect wheter a given war deployment is relevant to the WebServiceDeployerJSE so that the WS layer can modify the web.xml and replace the invalid <servlet-class> entries.

      So far the detection depends on the existens of the WEB-INF/webservices.xml descriptor.

      With the event of JSR-181 annotations, the entries in <servlet-class> have to be checked for @javax.jws.WebService. In order to do that, these classes need to be loaded.

      The web context classloader, however is not made available before the START step of the web deployment, at which time the web.xml should have been modified already.

      How is it possible to load a class from WEB-INF/classes (and other valid war locations) without introducing a dependency on Tomcat in JBossWS? AFAIK, the DeploymentInfo.ucl does not see these locations.

      IMO, the web context loader should be made available in WebMetaData.ctxLoader during INIT or CREATE if that is at all possible.

        • 1. Re: Cannot access context classloader during create step of
          Scott Stark Master

          I would say that the annotations needs to be extracted by the deployer as part of the init step to complete the metadata. This should not be solved by putting restrictions on needing the final class loader. Look at moving the current webservices deployer to an interceptor on the TomcatDeployer/EJBDeployers to allow for tighter integration with the deployment process.

          This intersects with discussions of how the aop/mc layers handle processing of annotation metadata so this should have a general implementation in the future.