Настройка двух контекстно-корневых одинаковых файлов войны на сервере Webpshere Liberty

#java #maven #websphere #websphere-liberty

#java #maven #websphere #websphere-liberty

Вопрос:

Я переношу приложение с ANT (EAR) на Maven (WAR). В проекте ANT у меня есть веб-слой в WAR и слой EJB в JAR. Модуль EJB имеет код веб-сервиса. Теперь я переношу ANT на Maven, Отныне приложение будет иметь только WAR. Когда приложение в ANT, у меня могут быть два разных контекстно-корневых файла, таких как «/ webapp» и «/ webservice». Контекстно-корневой «/ webservice», определенный в архиве EJB JAR, как показано ниже,

 <webservices-bnd xmlns="http://websphere.ibm.com/xml/ns/javaee" 
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
        xsi:schemaLocation="http://websphere.ibm.com/xml/ns/javaee http://websphere.ibm.com/xml/ns/javaee/ibm-ws-bnd_1_0.xsd" 
        version="1.0">
    <!-- optional http publishing module overrides -->
    <http-publishing context-root="/webservice" />
</webservices-bnd>
  

Итак, у меня разные URL-адреса для доступа к WEB и WebService,
http://localhost:9080/webapp/application/index.html — Веб-приложение
http://localhost:9080/webservice/service/helloworld ?wsdl — веб-сервис

Согласно документации IBM https://www.ibm.com/support/knowledgecenter/SSEQTP_liberty/com.ibm.websphere.wlp.doc/ae/twlp_dep_jaxws_binding.html

контекстно-корневой <http-publishing context-root="/webservice" /> ввод не будет работать, если у меня есть только файл WAR. Итак, я могу получить доступ только к webapp и webservice, используя тот же контекстно-корневой «webapp». Но мне нужны два разных URL-адреса для доступа к webapp и webservice, как указано выше. Как я могу этого добиться.?

Ответ №1:

Если вы объединяете свой файл EAR в один war, то невозможно переопределить контекстно-корневой файл по умолчанию для разных конечных точек в этой войне.

Вы можете переопределить контекстно-корневой файл по умолчанию для EJB jar, используя ibm-ws-bnd.xml файл конфигурации Liberty вместе с упомянутым вами элементом: <http-publishing context-root="/webservice" /> . Вам нужно будет сохранить файл EAR с jar веб-службы EJB, упакованный отдельно от вашего war.

Комментарии:

1. Да, я объединил EAR в одну ВОЙНУ. могу ли я каким-либо образом внести изменения на стороне сервера для достижения этой цели.?