Веб-сервис в виде файла JAR или WAR внутри другого WAR?

У меня есть веб-служба SOAP, работающая на Tomcat 6 (с использованием Spring Web Services, Java)

Теперь я хочу объединить этот веб-сервис с другим большим веб-приложением (использующим Spring, Java, а не веб-сервис) и использовать веб-сервис как своего рода плагин для основного веб-приложения. Я имею в виду, что когда я запускаю свое основное приложение, мой веб-сервис также начинает работать. И они будут использовать одни и те же ресурсы.

В основном веб-приложении уже есть несколько плагинов, которые представляют собой файлы JAR в папке WEB-INF/LIB. Но моя веб-служба представляет собой файл WAR, поэтому могу ли я использовать веб-приложение (файл WAR) в папке WEB-INF/LIB других веб-приложений?

Если я не могу этого сделать, можно ли удалить папку WEB-INF моего веб-сервиса и сделать мой веб-сервис файлом JAR и поместить его в папку моих основных приложений WEB-INf/LIB? Я не уверен, что смогу обслуживать веб-службу в виде файла JAR.

Какой подход вы считаете лучше или у вас есть другие предложения?

Спасибо


person Spring    schedule 16.05.2011    source источник


Ответы (2)


Я бы порекомендовал вам сделать JAR из вашего веб-сервиса и поместить его в папку lib. Что хорошо в java, так это то, что не имеет значения, где находится ваш код, если вы загружаете его правильно.

Я не думаю, что ВОЙНА может быть внутри ВОЙНЫ. Однако вы можете объединить два проекта WAR в один (что может быть выполнено, например, системой сборки maven). Тем не менее, слияние WAR — это операция копирования-вставки-перезаписи, которая оставляет желать лучшего.

person Johan Sjöberg    schedule 16.05.2011
comment
Не могли бы вы рассказать мне немного больше, как я могу сделать банку из мыльного веб-сервиса spring-ws? - person Spring; 16.05.2011
comment
Просто создайте обычный jar-проект, используя вашу любимую IDE, или создайте его вручную из ваших java-файлов, следуя Руководство Oracle. Этот jar-файл веб-сервиса не должен отличаться от любого другого jar-файла. Просто не забудьте включить зависимости spring-ws в виде jar-файлов в свой проект WAR. - person Johan Sjöberg; 16.05.2011
comment
Спасибо, поэтому я удалю только папку WEB-INF моего веб-сервиса (потому что я хочу использовать папку web-inf основных приложений) и добавлю все в файл jar, включая все мои файлы конфигурации xml (spring.wsdl, applicationcontext.xml. .etx) и это будет работать? - person Spring; 16.05.2011
comment
Вы можете хранить, например, файлы конфигурации в банке, но вы также должны убедиться, что загружаете их из банки! Я бы рекомендовал поместить конфигурацию (spring.wsdl, applicationcontext.xml и т. д.) в ваш проект WAR, который импортирует банку веб-сервиса. - person Johan Sjöberg; 16.05.2011
comment
в этом случае, как я могу получить доступ из моего веб-сервиса к папке web-infs файлов WAR? если я прямо напишу schemaLocation=/WEB-INF/schemas/Response.xsd/›, будет ли это относиться к папке WEB-INF файлов WAR? - person Spring; 16.05.2011

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

person jmj    schedule 16.05.2011