Переопределите context-param в web.xml в Jboss EAP 6.4 во время развертывания - PullRequest
0 голосов
/ 25 марта 2019

Цель - развернуть проектную войну на Jboss EAP 6.4 с новыми значениями для параметров context-param в web.xml без редактирования существующей войны.
Текущий статус -

  • Война работает, если я добавлю необходимые значения web.xml во время самой сборки. Но происходит сбой при использовании файла web.xml по умолчанию.
  • Война по умолчанию отлично работает на Tomcat 9, поскольку в графическом интерфейсе консоли менеджера доступна опция «Путь к файлу конфигурации XML» для переопределения значений по умолчанию web.xml.

Мой стандартный web.xml -

<?xml version="1.0" encoding="utf-8"?><web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>Myproject Web Service</display-name>

<context-param>
    <param-name>myproject.appserver</param-name>
    <param-value>jbosseap</param-value>
</context-param>
<context-param>
    <param-name>myproject.logpath</param-name>
    <param-value></param-value>
</context-param>
<context-param>
    <param-name>myproject.dbtype</param-name>
    <param-value></param-value>
</context-param>

<listener>
    <listener-class>com.myproject.ApplicationStartListener</listener-class>
</listener>

<error-page>
    <error-code>404</error-code>
    <location>/pages//404ErrorView.html</location>
</error-page></web-app>

Обязательные значения как -

<context-param>
    <param-name>myproject.logpath</param-name>
    <param-value>D:\myproject\vXX\workspace</param-value>
</context-param>
<context-param>
    <param-name>myproject.dbtype</param-name>
    <param-value>MSSQL</param-value>
</context-param>

Устранение неполадок -

  • такой способ не упоминается в официальной документации Jboss EAP 6.4.
  • такая опция недоступна в консоли администратора Jboss EAP (http://localhost:9990/console/App.html#home) как кот для развертывание.
  • ни один из SO не отвечает на сообщения с похожей проблемой полезно в моем случае.

Поскольку мы отправляем клиентам ту же войну, поэтому было решено не разрешать клиентам редактировать войну и развертывать ее.

Если переопределение во время развертывания вообще невозможно, тогда любая официальная ссылка на документацию для такого ограничения будет полезна. Спасибо.

1 Ответ

0 голосов
/ 01 апреля 2019

Jboss EAP не поддерживает замену контекстного параметра, как tomcat.Но он поддерживает замену контента для развернутой WAR.
Решение - Замените web.xml с помощью команды deployment-overlay.
Официальная документация
Следовательно, на стороне пользователя требуется шаблон web.xml, и пользователь должен будет ввести значения для context-param согласно своей среде и повторно развернуть войну.
war и web.xml должны быть внутри \ bin.В противном случае deployment-overlay команда не может распознать путь.
Последовательность команд - Использование jboss-cli.bat -

[standalone@localhost:9990 /] deploy s1temp/myproj.war
[standalone@localhost:9990 /] deployment-overlay add --name=s1overlay --content=WEB-INF/web.xml=s1temp/web.xml
[standalone@localhost:9990 /] deployment-overlay link --name=s1overlay --deployments=myproj.war --redeploy-affected
...