8 Replies Latest reply on Dec 15, 2006 1:56 PM by Tino Nitze

    jBossall-client.jar and servlet 2.3 specification violation

    Stephan Radermacher Newbie

      Hi all,

      I tried to start my web application on tomcat 5.5.15 and 5.0.30. The web application libraries contain the jbossall-client.jar. The lib is thus loaded while starting the web application.

      I got a strange error: Here's the tomcats tracing:


      10.03.2006 16:29:31 org.apache.catalina.loader.WebappClassLoader validateJarFile
      INFO: validateJarFile(D:\Projekte\src\struts-examples\.deployables\struts-examples\WEB-INF\lib\jbossall-client.jar) - jar not loaded. See Servlet Spec 2.3, section 9.7.2. Offending class: javax/servlet/Servlet.class
      


      The jbossall-client.jar contains since JBoss 4.0.3 the javax.servlet package and that is suppossed to offend the servlet 2.3. specification.

      Here's the section 9.7.2 of the servlet 2.3 specification:

      The classloader that a container uses to load a servlet in a WAR must allow the
      developer to load any resources contained in library JARs within the WAR
      following normal J2SE semantics using getResource. It must not allow the WAR to
      override J2SE or Java servlet API classes. It is further recommended that the loader
      not allow servlets in the WAR access to the web container?s implementation classes.
      It is recommended also that the application class loader be implemented so
      that classes and resources packaged within the WAR are loaded in preference to
      classes and resources residing in container-wide library JARs.


      Thus, following the specification the jbossclient-all.jar should not contain the servlet package.

      Can anybody help me? Is there any other solution? Which libs have I to pack to the web application in order to communicate JBoss 4.0.3. ?

      Thanks for helping,

      Best regards,

      Stephan