users@glassfish.java.net

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

From: Sahoo <Sahoo_at_Sun.COM>
Date: Wed, 05 Aug 2009 11:03:19 +0530

JSTL is part of GlassFish, so when JSP container encounters the JSTL
URI, it does not have to search the tag libraries using application
classloader. I suspect that's the reason for delegate flag to not come
into picture.

I will let web container folks tell you the implication of what you have
done. It is not necessary for an appserver to allow user to override
parts of implementation which is what you are trying to do.

BTW, any particular reason you want to use a different JSTL
implementation? GF v2 comes with JSTL 1.2 implementation and I don't
think there is a newer spec out there, is there? Are you finding bugs in
GlassFish JSTL implementation?

Thanks,
Sahoo

glassfish_at_javadesktop.org wrote:
> 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
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>
>