Ссылка на банки JAXB - лучшая практика - PullRequest
0 голосов
/ 03 июня 2009

Мой первый пост, так что будь осторожен со мной.

Я ищу советы по организации и ссылкам на сторонние файлы jar для использования в моем веб-приложении j2ee. Банки, которые мне нужно организовать и сослаться, - это JWSDP-2.0 JAXB api jars.

Я использую Eclipse и Tomcat 5.5. Мое веб-приложение обменивается XML с веб-службой, и поэтому ему необходимо выполнить некоторую сортировку и демарширование XML с использованием API-интерфейсов JAXB в JWSDP-2.0.

Я скачал JWSDP-2.0 и установил на свой компьютер. Сейчас я пытаюсь найти лучший способ сделать необходимые jar-файлы, содержащиеся в нем, доступными для моего веб-приложения в рамках eclipse на моей машине, а также в Tomcat как на моей машине, так и на возможных тестовых и производственных серверах.

Я начал с копирования файлов .jar в папку WEB-INF / lib моего проекта. Это означало, что файлы jar теперь будут экспортироваться в .war при развертывании в Tomcat. Однако мне это не нравится, потому что файлы JAR поступают из нескольких разных библиотек в JWSDP-2.0, и их копирование таким образом означало, что все они были просто объединены, а не разделены как JAXB, JAXP, SAAJ и т. Д. Также , есть некоторые конфликты имен, например, мое веб-приложение уже содержит старые файлы XML для разбора, такие как xalan.jar, которые уже используются другой частью веб-приложения.

Затем я удалил все эти jar-файлы и создал серию пользовательских библиотек в eclipse, например, «jwsdp-2.0_jaxp», «jwsdp-2.0_jaxb», которые ссылаются на jar-файлы из их местоположений в установке WSDP-2.0. Это прекрасно работает, когда выполняется компиляция моего веб-приложения в Eclipse, но теперь мне нужно сделать эти банки доступными для Tomcat, и я немного застрял там, чтобы сделать лучший способ сделать это.

Итак, на базовом уровне мой вопрос: как мне получить jar-файлы, на которые есть ссылки в Tomcat?

В целом, я ищу несколько советов по передовой практике создания ссылок и включению сторонних jar-файлов в проект с целью плавного развертывания на серверах.

Если кто-нибудь может порекомендовать какие-либо хорошие статьи / книги / ресурсы по организации и развертыванию кода, которые помогли бы мне изучить лучшие практики для такого сценария, который был бы великолепен

Приветствия заранее.

Ответы [ 2 ]

3 голосов
/ 03 июня 2009

Несколько пунктов здесь:

  • Если у вас есть конфликтующие JARS в вашем файле WAR, значит, вы напрашиваетесь на неприятности. Вы должны разобраться, какие из них нужны вашему приложению, и отбросить остальные. в противном случае вы рискуете, если tomcat загрузит «неправильные» классы.
  • JWSDP 2.0 является очень старым и содержит старую предварительную версию JAXB. Я настоятельно рекомендую использовать последние JAR JAXB (от http://jaxb.dev.java.net),, так как ранний доступ JAXB2 страдал от многих проблем.
  • Хотя для вашего WEB-INF / lib было бы неплохо иметь структурированную структуру каталогов, на самом деле это не имеет значения, поскольку это ваш артефакт сборки. Пока вы берете JAR-файлы из структурированного хранилища, вы не должны чувствовать необходимость сохранять эту структуру в WAR. Tomcat не волнует. Тот факт, что вы получаете конфликт имен, помещая их все в один каталог, является предупреждением о том, что вам нужно разобраться в этих конфликтах.
1 голос
/ 03 июня 2009

Лучшей практикой для организации ваших зависимостей было бы использовать maven для создания вашего проекта eclipse и war for tomcat и позволить ему загрузить все необходимые зависимости:

https://jaxb.dev.java.net/jaxb-maven2-plugin/

...