Taglib JSP в файле JAR, упакованном в файл EAR - PullRequest
3 голосов
/ 19 мая 2011

У меня следующая ситуация:

  • taglib.jar: настраиваемая библиотека тегов JSP, упакованная как файл JAR.Файл TLD: /META-INF/taglib.tld.
  • webapp.war: веб-приложение с файлами JSP, использующими теги, предоставленные taglib.jar.
  • app.ear: приложение J2EE, содержащее webapp.war и другие файлы WAR.

Я хочу упаковать один taglib.jar в app.ear, чтобы файлы JSP в webapp.war и другие файлы WAR могли использовать свои теги.Я безуспешно попробовал следующие директивы в файлах JSP:

  • <%@ taglib uri="/taglib.jar" prefix="xxx" %>
  • <%@ taglib uri="taglib.jar" prefix="xxx" %>

Возможно ли упаковать JSPJAR-файл taglib в EAR-файле?Если да, какое значение я должен указать в атрибуте uri директивы taglib?

Примечание: Я мог бы, конечно, упаковать taglib.jar в /WEB-INF/lib каждогоФайл WAR, но это именно то, чего я стараюсь избегать.

Контекст: Я развертываю файл EAR на JBoss 4.2.3.

Редактировать: Боюсь, что это невозможно, тем более что я прочитал раздел о тощих WARs из документации по Maven WAR :

Иногда список JAR-файлов должен быть упакован в WAR (...), чтобы он работал правильно, как с библиотеками тегов.

Ответы [ 3 ]

1 голос
/ 19 мая 2011

Теги jar могут присутствовать только в WEB-INF / lib.Контейнер может предоставить какой-то особый способ настройки обычно используемого tld.Чтобы добиться того же в JBOSS, используйте

. JspServlet поддерживает новый engineOptionsClass, который позволяет заменять реализацию опций.Параметр по умолчанию теперь использует специфичные для jboss JspServletOptions:

engineOptionsClass org.jboss.web.tomcat.tc5.jasper.JspServletOptions

, который, в свою очередь, использует собственный кэш дескриптора lib тега org.jboss.web.tomcat.tc5.jasper.TagLibCache, который загружает библиотеки тегов из jar-файлов в tomcat sar conf / tlds.

0 голосов
/ 31 марта 2015

Это старая тема, но я хочу поделиться своим решением: При затмении щелкните правой кнопкой мыши по проекту, экспортируйте как jar с опцией «Экспорт сгенерированных файлов классов и ресурсов» и присвойте ему имя (ex.customtags.jar). Откройте упакованный .jar с 7Zip, и мы должны увидеть структуру, похожую на следующую:

  • ком
  • META-INF
  • 1008 * WebApp *
  • .classpath

Скопируйте все метки в папку META-INF в корне файла .jar (не в любом другом месте).

После изменения этого jar добавьте его в папку webapp \ WEB-INF \ lib проекта, в котором вы хотите использовать taglib. В файл JSP положить следующее:

Это должно работать просто отлично!

С уважением, МС

0 голосов
/ 01 июня 2011

Это невозможно. Лучшее, что я мог сделать, - это упаковать taglib.jar в файл EAR и продублировать файл TLD в каталоге /WEB-INF каждого файла WAR.

...