[
https://jira.jboss.org/jira/browse/JBAS-1602?page=com.atlassian.jira.plug...
]
C?dric Chantepie commented on JBAS-1602:
----------------------------------------
Is it possible to have taglib jar in ear/lib ?
I've struts jar in ear/lib, its classes can be found in war, but not struts tlds .
It seems that other people have the same problem
(
http://lists.jboss.org/pipermail/jboss-user/2009-February/147299.html)
Can't use container level taglibs
---------------------------------
Key: JBAS-1602
URL:
https://jira.jboss.org/jira/browse/JBAS-1602
Project: JBoss Application Server
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: Web (Tomcat) service
Reporter: Stan Silvert
Assignee: Scott M Stark
Priority: Critical
Fix For: JBossAS-4.0.2 Final
Attachments: EmbeddedServletOptions.java, TldLocationsCache.java
JBoss/Tomcat needs a way to install tag libraries globally so they are available to all
web applications. This functionality is mentioned in the JSP 2.0 spec section 7.3.5. In
Tomcat standalone, you can do this, but it doesn?t work in JBoss/Tomcat.
The way this works is that the Jasper TldLocationsCache ?Scans all JARs accessible to the
webapp's classloader and its parent classloaders for TLDs.?
If I put my jar into Tomcat standalone?s common/lib directory then the tag library will
be shared across all web apps. I?ve tried putting the jar in several ?well known?
locations in JBoss/Tomcat and nothing seems to work.
For Reference, I?ve attached the TldLocationsCache source code from Tomcat 5.5.8.
Concerning TldLocationsCache, Scott Stark says:
"This class is useless for non-URLClassLoaders and URLClassLoaders that do not
expose their classpath via getURLs which is what we currently do because of an old bad
behavior with annotated codebases of rmi classes. "
Remy Maucherat offered this as a possible solution:
Would it be possible to have the ENCLoader facade return more interesting things ?
/**
* A trival extension of URLClassLoader that uses an empty URL[] as its
* classpath so that all work is delegated to its parent.
*/
static class ENCLoader extends URLClassLoader
{
private URL[] urllist = new URL[0];
ENCLoader(ClassLoader parent)
{
super(new URL[0], parent);
}
void addURLInternal(URL url)
{
URL[] result = new URL[urllist.length + 1];
for (int i = 0; i < urllist.length; i++)
result[i] = urllist[i];
result[urllist.length] = url;
urllist = result;
}
public URL[] getURLs()
{
return urllist;
}
}
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira