【问题标题】:JBoss - how set deployment runtime name (not using CLI, but directly from ear/war)JBoss - 如何设置部署运行时名称(不使用 CLI,而是直接来自 ear/war)
【发布时间】:2014-10-31 09:08:54
【问题描述】:

我现在正面临这个特殊问题,我真的不知道是否有可能以某种方式实现这一目标。但情况是这样的:

我们有这个 webapp(Java EE 6),它被组织成两个模块。一个是服务模块,另一个是前端模块。通过远程 ejb 进行通信,它们部署在不同的 jboss 服务器上(均为 EAP 6.2)。 (这些模块只共享 ejb 接口(服务模块实现它们),并且在前端模块中,实际的服务 bean 实现被注入(@Inject)并通过远程 JNDI 定位器实例化,然后使用远程处理)。这一切都按预期工作。

但是当我们部署应用程序(使用 jboss 管理控制台)时,我们有这样的应用程序战争名称:app-service-1.0.war 并且在上传过程中,当 jboss 询问"name" 和 "runtinme name" 我们需要去掉 "version" 部分,所以运行时名称会像这样 app-service(名称必须保持原样,带有版本号)。但问题是这个运行时名称总是基于部署名称,所以我们总是需要手动删除版本部分。 我知道可以通过 CLI 设置名称,但我想知道是否也可以在部署(war/ear 文件)内部的某个位置设置名称,以便管理员无需更改使用 Web 管理控制台时的运行时名称。谢谢

【问题讨论】:

    标签: jakarta-ee jboss ejb-3.1


    【解决方案1】:

    绝对可以,你只需要在WEB-INF文件夹中创建一个名为jboss-web.xml的文件,内容如下:

    <?xml version="1.0" ?>
    <jboss-web>
        <context-root>/app-service</context-root>
    </jboss-web>
    

    打包、部署和您的应用应该可以在 /app-service 下访问。

    有关选项的完整列表,请参阅https://docs.jboss.org/jbossweb/7.0.x/appdev/jbossweb.html

    【讨论】:

    • 这会改变上下文根,而不是运行时名称!
    【解决方案2】:

    如果你想更改战争的名称 你可以像这样使用 ShrinkWrap :

    WebArchive wa = ShrinkWrap.create(WebArchive.class,"XXX.war")
    

    那么,

    JBAS015859:部署 de“XXX.war”(运行时名称:“XXX.war”)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-01-29
      • 2012-02-27
      • 1970-01-01
      相关资源
      最近更新 更多