Uploaded image for project: 'OFBiz'
  1. OFBiz
  2. OFBIZ-4591

TLD is not loaded from CLASSPATH using Tomcat 7

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Minor
    • Resolution: Unresolved
    • Trunk, Upcoming Branch
    • None
    • framework
    • Ubntu

    • Bug Crush Event - 21/2/2015

    Description

      Hi community.
      I have a problem when I render a JSP page which is defined a taglib, for example:

      <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>

      The problem is TLD definition files are not loaded from CLASSPATH using Tomcat 7.
      To solve this problem we need to delete this line from CatalinaContainer.java file:

      standardJarScanner.setScanClassPath(false);

      because the standard jar scanner is set the default value as "true"

      After we have done above, we will get these problems.

      =========================================================
      1. JAR files are conflicted by different webapp contexts
      =========================================================

      The ScheduledExecutorService that submit all webapp contexts does not run them respectively. For example:

      Context(1)
      Context(2)
      Context(3)

      A particular context will read all JAR files from CLASSPATH. The problem is, for example, the Context(2) will start to read all JAR files even though the Context(1) does not finish its task yet. So the Context (2) will not be able to read some JAR file that the Context(1) is reading and causes an error.

      ===========================================================
      2. WebslingerAccessLogValve class does not support Tomcat 7
      ===========================================================

      If the jar scanner scan jar files from CLASSPATH, it will find WebslingerAccessLogValve class which does not support Tomcat 7

      =======================================================
      3. groovy.jmx.builder.package-info class cannot be loaded
      =======================================================

      groovy.jmx.builder.package-info class cannot be loaded because its name is incorrect. If I remove this class from framework/base/lib/scripting/groovy-all-1.7.7.jar file, this line in macros.xml will cause an error:

      <taskdef name="groovyc" classname="org.codehaus.groovy.ant.Groovyc" classpathref="groovy.class.path"/>

      ============================
      4. Starting time will slower
      ============================

      A particular webapp context will spend more time to parse JAR file from CLASSPATH to find TLD definition files.

      However I can avoid the TLD problem by copying JAR files that contain TLD definition files into /WEB-INF/lib directory of a particular webapp

      Lastly, I am not sure if we need this feature in the trunk but I think it is useful. If so, please help me to solve the problems.

      Regards,
      Chatree Srichart

      Attachments

        1. EnableJarScanner.patch
          0.8 kB
          Chatree Srichart

        Activity

          People

            Unassigned Unassigned
            chatree Chatree Srichart
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:

              Time Tracking

                Estimated:
                Original Estimate - 168h
                168h
                Remaining:
                Remaining Estimate - 168h
                168h
                Logged:
                Time Spent - Not Specified
                Not Specified