JBoss JNDI 绑定中的环境变量

Posted

技术标签:

【中文标题】JBoss JNDI 绑定中的环境变量【英文标题】:Environment Variables in JBoss JNDI Bindings 【发布时间】:2019-11-14 03:42:13 【问题描述】:

假设我有一个带有端口号的 JNDI 绑定,如下所示:

<subsystem xmlns="urn:jboss:domain:naming:2.0">
    <bindings>
        <simple name="java:global/test/SOMEURL" value="http://localhost:8080/someurl"/>
    <bindings/>
</subsystem>

我希望端口是 JBoss 实例的实际端口。

端口是通过-Djboss.socket.binding.port-offset=x设置的

我试过这样,但它总是默认为8080

<simple name="java:global/test/SOMEURL" value="http://localhost:$jboss.http.port:8080/someurl"/>

有没有办法读取当前端口,或者手动将jboss.socket.binding.port-offset添加到8080?

【问题讨论】:

【参考方案1】:

用 offset 属性启动 JBoss 会

standalone.sh -Djboss.socket.binding.port-offset=10

port-offset 是一个属性,可以同时修改所有的端口出价。例如,默认值为 0,表示 HTTP 端口将是 8090,远程处理将偏移相同的数字。 As explained by Mendieta.

如果您使用$jboss.socket.binding.port-offset:100,http 端口将是8180 (8080+100),远程处理也是如此。

对于您的具体情况,我认为您可以为投标定义一个接口:

<interfaces>
    <interface name="allIPs">
            <inet-address value="$jboss.bind.address:0.0.0.0"/>
        </interface>
</interfaces>

如果是这种情况,您可以尝试使用您需要的端口创建一个套接字绑定组。

【讨论】:

以上是关于JBoss JNDI 绑定中的环境变量的主要内容,如果未能解决你的问题,请参考以下文章

如何在 JBoss 中设置环境变量

JBoss漏洞复现整理

Keycloak/Undertow/JBoss-CLI - 从环境变量中设置“web-context”

使用 jboss-cli 引用它时无法解析系统属性

如何访问 Vala 中的环境变量?

JBOSS的安装与部署