WebSphere + RAD + Taglib
У меня проблема с разработкой приложения для WebSphere 7. Вот настройка. У меня есть проект на основе Maven, состоящий из нескольких модулей, который разработан в RAD 7.5.5.2
Один из модулей - это простое веб-приложение (war), которое использует JSP и опирается на taglib.
Сам Taglib - это другой модуль - простой Java-проект, содержащий всего два файла: дескриптор taglib и файл тегов в META-INF/tags.
Когда я создаю jar-файл taglib и вручную копирую его в WEB-INF/lib веб-приложения, тег выбирается правильно и отображается на странице.
При развертывании проекта через RAD - taglib не поднимается. Ошибка говорит:
```
com.ibm.ws.jsp.JspCoreException: JSPG0047E: Unable to locate tag library for uri http://juriy.com/myproject/jsp/my-taglib
```
Та же библиотека тегов, которая упакована как JAR и добавлена в WEB-INF/lib, работает отлично.
Открывая консоль администратора WebSphere, я вижу, что проект taglib распознается WebSphere. Однако он не упакован как JAR, вместо этого путь к проекту добавляется в путь к классу webapp. В
```
Troublehooting -> Class Loader Viewer -> Module - com.ibm.ws.classloader.CompoundClassLoader
```
Я вижу запись для моего taglib:
```
file:/D:/Data/MyProject/UIComponents/target/classes
```
Другими словами, похоже, что WS не заботится о том, чтобы упаковать проект как JAR во время цикла разработки, а затем он не воспринимается как taglib.
Есть ли способ сказать RAD (или WebSphere) "Пожалуйста, упакуйте этот проект в JAR, прежде чем добавить его в путь к классам"? Любой альтернативный способ заставить эту настройку работать также приветствуется. Я не могу копировать jar вручную все время во время разработки - мы все хотим, чтобы все работало автоматически.
Отказ от ответственности: я не эксперт по WebSphere (только неделя работаю с этим зверем), и я мог пропустить некоторые очевидные настройки. Пожалуйста, предложите, что может решить эту проблему.
3 ответа
Насколько я знаю, RAD сделан на платформе Eclipse. Я знаю, что с помощью Maven вы можете создавать артефакты, которые создают файлы JAR и помещаются в локальный репозиторий. Другие модули могут ссылаться на эту банку через M2_REPO
переменная. Затем вы придерживаетесь maven и должны использовать плагины maven для затмения, которые помогают интегрировать maven в затмение. Но рассмотрите вариант для настройки вашего проекта с помощью компоновщика проекта и муравья. Затем вы можете легко запускать муравьиные цели при сборке, чтобы сделать ваши jar-файлы до развертывания. Этот метод используется не только в IDE затмения, но и в других IDE. Запуск целей муравья до или после сборки проекта является бесценной функцией.
Упакуйте ваш taglib как maven jar и установите его в локальный репозиторий.m2. Затем укажите ссылку в pom для вашего основного проекта. Это будет потянуто для упаковки. Если это разрешение для локальной разработки, возможно, это связано с разрешением рабочей области.
Кроме того, добавление jar-файлов в WEB-INF/lib в проекте на основе Maven не является наилучшей практикой, поскольку вы обошли основную цель maven, которая заключается в контроле зависимостей, необходимых для создания проекта.