JBoss 7.1.1在运行时更改JNDI绑定

rag*_*nor 5 jndi jboss7.x wildfly wildfly-9

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

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

mik*_*mik 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>
Run Code Online (Sandbox Code Playgroud)

要通过 CLI 添加这些条目:

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

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

/subsystem=naming/binding=*:read-operation-description(name=add)
Run Code Online (Sandbox Code Playgroud)

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

更新-带有测试过的示例:

  • 添加JDNI 名称绑定java:global/a
/子系统=命名/绑定=java\:global\/a:add(值=10,绑定类型=简单,类型=java.lang.Integer)
  • 读取现有的 JDNI 名称绑定java:global/a
/subsystem=naming/binding=java\:global\/a:read-resource(include-defaults=true)
  • 修改JDNI名称绑定值java:global/a
/subsystem=naming/binding=java\:global\/a:write-attribute(名称=值,值=20)
  • 删除JDNI 名称绑定java:global/a
/子系统=命名/绑定=java\:全局\/a:remove()

直接从 shell 执行命令:

./jboss-cli.sh --connect --command="/subsystem=naming/binding=java\:global\/a:read-resource(include-defaults=true)"