users@glassfish.java.net

<class-loader delegate="false"> not working in v2.1(9.1.1) (build b60e-fcs)

From: <glassfish_at_javadesktop.org>
Date: Tue, 04 Aug 2009 10:36:39 PDT

My web application is using the JavaServer Pages Standard Tag Library (jstl) defined in standard.jar found in my applications WEB-INF/lib. The problem is its clear the Glassfish server is not loading the correct version of these classes since I'm getting errors that indicate the calling signature is wrong:
java.lang.NoSuchMethodError: org.apache.taglibs.standard.tag.rt.core.ForTokensTag.setItems(Ljava/lang/String)

After some digging I discovered that the class is being loaded from GLASSFISH_HOME/lib/appserv-jstl.jar which is an older implementation. Some research indicates that I can have MY_APPLICATION/WEB-INF/lib/standard.jar take precedence with sun-web.xml entries like <class-loader delegate="false">. The problem is it does not work? I was able to make it work by following these steps:
1. modified the Application Server->JVM Settings-> JVM Options -Dcom.sun.enterprise.taglibs=appserv-jstl.jar,jsf-impl.jar to remove the appserv-jstl.jar
2. added my WEB-INF/lib/standard.jar to the Classpath Prefix
The problem is I have no idea what the impact of #1 might be on the glassfish server or admin gui so I would prefer not having to override things in this manner.

Do I misunderstand how <class-loader delegate="false"> is suppose to work? Why is this not the default? Is there a known bug in my version?
[Message sent by forum member 'dbsquared' (dbsquared)]

http://forums.java.net/jive/thread.jspa?messageID=358827