загрузка совместно использованных классов в приложении javaee5

Я пытаюсь загрузить некоторые классы, которые характерны для всех веб-приложений моего уха в приложении java ee 5.

Я пытался сделать это путем помещения классов (не банка) в a) каталоге, названном "lib"

b) также определение в application.xml

   <module><java>lib/common.jar</java></module> 

и не было успешно или опцией a или b

но когда я сотрясал классы в common.jar, я смог загрузить классы методом b)

  1. Оба они метод нуждаются в классах, которые будут сотрясаться?
  2. каково различие между обеспечением классов с помощью вышеупомянутых 2 методов? почему кажется, что существует два способа указать загружающиеся общие классы?
1
задан unmaskableinterrupt 27 July 2010 в 19:53
поделиться

1 ответ

Я не уверен, какой сервер приложений здесь упоминается, и какова природа файла common.jar. Пока я предположу, что сервер приложений - это любой контейнер Java EE 5, а файл common.jar - это утилита jar (а не EJB или аналогичный модуль).

Спецификация платформы Java EE 5 фактически определяет способ, которым поддержка библиотек должна обеспечиваться контейнерами:

Файл .ear может содержать каталог, содержащий библиотеки, упакованные в файлы JAR. Элемент library-directory дескриптора развертывания файла .ear содержит имя этого каталога. Если элемент library-directory не указан или если файл .ear не содержит дескриптора развертывания, используется каталог с именем lib. Пустой элемент library-directory может быть использован для указания отсутствия каталога библиотек. Все файлы в этом каталоге (но не подкаталоги) с расширением .jar должны быть доступны всем компонентам, упакованным в EAR-файл, включая клиентов приложений. Эти библиотеки могут ссылаться на другие библиотеки, как поставляемые вместе с приложением, так и устанавливаемые отдельно, используя любую из описанных здесь техник.

Это не означает, что метод B неверен, он используется для серверов приложений, таких как JBoss 4, которые не поддерживают элемент library-directory в application.xml. Я полагаю, что Glassfish также поддерживает концепцию каталога lib без соответствующего элемента library-directory.

Возвращаясь к вопросу, размещение классов отдельно в каталоге в EAR-файле, похоже, поддерживается только в WebLogic Server через структуру APP-INF\classes (нет необходимости говорить, что это не стандарт платформы). Следовательно, рекомендуется создать jar общих классов и использовать поддерживаемый сервером приложений механизм, чтобы сделать эти общие классы доступными для других модулей в приложении.

2
ответ дан 2 September 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: