1) Есть ли в проекте, содержащем общие объекты, файл persistence.xml? Если да, то чем он отличается от других проектов?
Да. Основное отличие состоит в том, что persistence.xml
в модельном проекте должен определять все сущности и что persistence.xml
в веб-проектах должен просто ссылаться на файл JAR модельного проекта. В противном случае вы продолжаете дублировать энтиты в persistence.xml
файлах.
Другое возможное отличие состоит в том, что в модели проекта должен использоваться локальный тип транзакции ресурса, так что модульное тестирование внутри проекта (например, с использованием метода main()
) выполняется очень легко. Те, кто в веб-проектах, должны, конечно, использовать источник данных, например, JTA.
2) Как именно на общеупотребительные объекты ссылаются в двух проектах? Могу ли я использовать тег <jar-file>
в их файле persistence.xml для справки? И если да, то будет ли правильным использовать «lib / MyCommon.jar», если MyCommin.jar находится в WEB-INF / lib?
Да и нет. <jar-file>
- правильный путь, но у вас есть опечатка в имени файла, и папка должна быть пропущена. Папка lib
обычно используется только в том случае, если у вас EAR, а JAR включен в папку EAR lib
.
<jar-file>MyCommon.jar</jar-file>
3) Имеет ли какое-либо значение, если приложение развернуто как WAR или разорванный архив в JBoss 6?
Нет. Правильно спроектированные Java API не полагаются на файловую систему локального диска, а только на путь к классам Для пути к классам не имеет значения, расширена ли WAR или нет.
4) При развертывании в Eclipse через добавление к среде выполнения сервера и публикации, есть ли что-то отличное от развертывания внешнего Eclipse?
Технически, да. Функционально №.
5) Является ли описанный способ помещения общих сущностей в отдельный проект, создания JAR и использования этого JAR в другом проекте разумным способом решения проблемы совместного использования классов общих сущностей или есть лучший способ?
Это определенно имеет смысл. Вы не хотите повторяться .