为了账号安全,请及时绑定邮箱和手机立即绑定

在部署时覆盖 Jboss EAP 6.4 中 web.xml中的上下文参数

在部署时覆盖 Jboss EAP 6.4 中 web.xml中的上下文参数

慕慕森 2022-09-01 18:16:07
目标 - 在 Jboss EAP 6.4 上部署项目 war,并为 Web.xml中的上下文参数提供新值,而无需编辑现有 war。现状 -战争工作,如果我在构建本身时放置所需的web.xml值。但是当我使用默认的web.xml时,它失败了。默认战争在Tomcat 9上工作正常,因为它在管理器控制台GUI上提供了“XML配置文件路径”选项,可以覆盖默认web.xml的值。我的默认网站.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)中没有这样的选项,如 tomcat 用于部署。对于具有类似问题的帖子,没有一个SO答案对我的情况有帮助。由于我们向客户运送相同的战争,因此决定不让客户编辑战争和部署。如果在部署时根本不可能覆盖,那么任何针对此类限制的官方文档参考都会有所帮助。谢谢。
查看完整描述

1 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

Jboss EAP 不支持像 tomcat 这样的上下文参数替换。但它确实支持对已部署 WAR 的内容替换。

解决方案 - 使用命令替换 web.xml。

官方文档

因此,在用户端,需要web.xml模板,用户必须根据其环境为上下文参数放置值并重新部署war。

战争和 web.xml必须在 \bin 中。Else 命令无法识别路径。

命令序列 - 使用 jboss-cli.bat -deployment-overlaydeployment-overlay


[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


查看完整回答
反对 回复 2022-09-01
  • 1 回答
  • 0 关注
  • 71 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信