首页 > 解决方案 > JBoss JNDI 绑定中的环境变量

问题描述

假设我有一个带有端口号的 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?

标签: xmljbosswildflyjndi

解决方案


使用 offset 属性启动 JBoss 将

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

port-offset 是一个属性,用于同时修改所有的端口投标。例如,默认值为 0,表示 HTTP 端口将是 8090,远程处理将偏移相同的数字。正如 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>

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


推荐阅读