Кот; ссылаться на одну войну как библиотеку в другой войне - PullRequest
1 голос
/ 19 января 2010

У меня есть несколько приложений tomcat, развернутых в tomcat с использованием файлов .war. Несмотря на то, что эти войны отделены друг от друга, все они являются частью более широкой концепции / приложения, и довольно часто одна война должна вызывать код из другой войны.

Допустим, у меня есть 2 .wars, "a.war" и "b.war" ... Я хотел бы иметь возможность использовать некоторые классы, найденные в "a.war", изнутри "b.war" , Один из вариантов, конечно, состоит в том, чтобы разделить общий код на третий «.jar», но по причинам, в которые я не хочу входить, это вызовет другие проблемы (и, кроме того, в моем случае это не так уж и много) «общего кода», но больше похоже на «одно приложение, вызывающее другое».)

Какие у меня есть варианты?

Ответы [ 3 ]

1 голос
/ 19 января 2010

Если здесь подразумевается, что «подпрограммы» в отдельных .wars взаимодействуют друг с другом по общей схеме большого приложения, а не с общим кодом / lib, я бы порекомендовал:

  1. Сервлеты - настройте Сервлеты для облегчения связи между этими приложениями, чтобы они могли общаться друг с другом. Зарегистрируйте сервлеты в ваших файлах web.xml, запустите несколько тестов подключения для ожидаемых URL сервлетов, и вы скоро приступите к работе.

  2. Веб-сервисы - найдите подходящую реализацию веб-сервиса для ваших приложений и создайте wsdl.

  3. RMI, как предлагает BranTheMan.

  4. кросс-текстовая связь между сервлетами (еще не пробовали)

0 голосов
/ 19 января 2010

Я не уверен, что вы против создания .jar целиком или просто против идеи создания 1 jar на приложение, но в tomcat есть идея разделяемых библиотек.

В Tomcat 5.5 он находится в / shared /, в Tomcat 6 он просто в / lib. Если вы поместите туда файлы .jars (или .class? Никогда не пытались), на них может ссылаться любой файл .war в том же экземпляре сервера.

С одной стороны, это хорошо, делает .wars красивыми и маленькими, и, вероятно, помогает с пространством permgen, но с другой стороны, трудно создавать версии артефактов, если они совместно используются многими .wars. *

0 голосов
/ 19 января 2010

Если это просто «одно приложение, вызывающее другое», вы можете использовать Java RMI.

...