【问题标题】:How to pass an argument while deploying a WAR file?如何在部署 WAR 文件时传递参数?
【发布时间】:2014-07-03 09:46:57
【问题描述】:

我基本上需要将一个参数传递给包含我的config.json 路径的WAR 文件。

我想以这样的方式实现它,以便一旦项目被导出为 WAR 文件,我应该能够更改参数而无需打开 WAR 文件并且必须再次导出它。

我知道我可以在 web.xml 中传递参数,这些参数可以在 servlet 中获得,但不会更改 web.xml 需要我打开 WAR 文件?

我正在使用jetty-runner.jar 来部署我的网络应用程序。

【问题讨论】:

  • 为什么?为什么不在部署时更改 config.json 文件?
  • 我认为使用系统属性对你有用。

标签: java war


【解决方案1】:

当你运行 jetty-runner.jar 时,你可以像这样向 jvm 传递一个属性 java -jar jetty-runner.jar my.war -Dproperty.name=value

在您的 web.xml 中,您可以使用以下语法

<context-param>
    <param-name>property.name</param-name>
    <param-value>${property.name}</param-value>
</context-param>

在此处查看示例:http://www.xinotes.net/notes/note/1611/

【讨论】:

    【解决方案2】:

    我可以看到 2 个解决您问题的方法:
    1) 您定义一个环境变量,该变量在托管您的码头实例的服务器上指定 config.json 的路径
    2) 您将包含 config.json 的文件夹添加到类路径并从您的 Web 应用程序访问它。

    【讨论】:

      猜你喜欢
      • 2019-10-21
      • 1970-01-01
      • 2019-10-07
      • 2020-10-12
      • 2013-06-01
      • 2020-06-23
      • 1970-01-01
      相关资源
      最近更新 更多