JBoss 7.1.1在运行时更改JNDI绑定

时间:2012-05-30 06:54:24

标签: wildfly jboss7.x jndi wildfly-9

在独立模式的JBoss 7.1.1中,所有JNDI绑定都在jboss:domain:naming:1.1子系统的standalone.xml文件中配置。根据文档,当服务器运行时,无法修改standalone.xml。我试过使用JBoss CLI,但我不知道如何编写/修改资源。

如何在不重启jboss的情况下更改JNDI中的值?

3 个答案:

答案 0 :(得分:4)

应该对您有所帮助:https://docs.jboss.org/author/display/AS71/JNDI+Reference

主题 - 将条目绑定到JNDI:

  

示例standalone.xml可能如下所示:

<subsystem xmlns="urn:jboss:domain:naming:1.1" >
  <bindings>
    <simple name="java:global/a" value="100" type="int" />
    <object-factory name="java:global/b" module="com.acme" class="org.acme.MyObjectFactory" />
    <lookup name="java:global/c" lookup="java:global/b" />
 </bindings>
</subsystem>
     


  要通过CLI添加这些条目:

/subsystem=naming/binding=java\:global\/mybinding:add(binding-type=simple, type=long, value=1000)
     


  要查看add命令所采用的所有选项(可以   实际上用于获取任何CLI命令的描述):

/subsystem=naming/binding=*:read-operation-description(name=add)
     


没试过,但我希望这有帮助!

答案 1 :(得分:3)

这个问题有很多观点,所以我会回答。受@mik响应的启发我已经想出要改变某些JNDI密钥的值,例如java:jboss/api/key到newApiKey运行JBoss CLI并执行:

connect
/subsystem=naming/binding=java\:jboss\/api\/key/:write-attribute(name=value,value=newApiKey)

更改将立即在服务器上显示,并在standalone.xml中存储(更新),以便在服务器重新启动后不会丢失。

答案 2 :(得分:1)

我一直在寻找如何在运行时添加或修改JNDI绑定,但是我需要在Wildfly 9域(集群)配置(不是独立的)中执行此操作,该配置与JBoss 7几乎相同但是,我想不出一种方法来有效地应用更改而无需重新启动所有服务器。

首先,进入JBoss命令行界面并连接到服务器域控制器:

./jboss-cli.sh
connect

首先,您需要找到哪个概要文件在服务器组上处于活动状态,因此,在服务器根 / 上,输入以下命令:

cd server-group=
ls

此后,您应该输入cd {{your_server_group_name}}输入清单命令(ls)中显示的唯一服务器组,然后再次输入ls并查找名为 profile 的条目。检查哪个是活动的。让我们考虑 full-ha 作为示例的主动配置文件。

接下来,通过键入cd ..返回到根配置文件夹/并输入以下命令来浏览和查看所有可用的JNDI绑定及其当前值:

cd profile=full-ha/subsystem=naming/binding=
:read-resource(recursive=true)

这样做,您将能够查看所有可用的JNDI绑定及其属性,如果您只想列出绑定名称,请键入ls而不是最后一个命令。

为了修改绑定,请键入cd和上一个命令中列出的绑定名称。假设您要更改名为 java:/webservice.url 的绑定的值,则应输入

cd java\:\/webservice.url

请注意,在绑定名称中用反斜杠( \ /(斜杠)引号是必需的。 em>)。

要在此绑定中修改属性,应使用:write-attribute命令。在此示例中,假设您要修改(或添加)名为“ value” 的属性,其内容为“ this is a value”:

:write-attribute(name=value,value="this is a value")

要应用此更改,您需要通过键入以下命令来重新启动集群中的所有服务器:

/server-group={{server-group-name}}:restart-servers

如果您想了解更多添加或删除JNDI绑定的命令,请选中此jboss-cli snippets page

此配置已在Wildfly 9.0.1中成功测试