简体   繁体   中英

JBoss: Binding values into JNDI in JBoss EAP 6 similar to JNDIBindingServiceMgr

  1. How do I bind an arbitrary string to JNDI in JBoss EAP 6? I used to do it through org.jboss.naming.JNDIBindingServiceMgr MBean in previous EAP version.

  2. Is there anything similar to org.jboss.naming.JNDIBindingServiceMgr in JBoss EAP 6?

  3. We are migrating applications from jboss-5.1.EAP to jboss-eap-6.1. We need to bind some things into JNDI, so applications can look up values of environment variables.

Many thanks.

You can do the following:

standalone.xml:

<subsystem xmlns="urn:jboss:domain:naming:1.2">
  <bindings>
    <simple name="java:global/user" value="newUser"/>                
  </bindings>
</subsystem>

and in spring context:

<bean class="java.util.Properties">
  <constructor-arg>
    <map>
      <entry key="user">
         <jee:jndi-lookup jndi-name="java:global/user" />
      </entry>
    </map>
  </constructor-arg>
</bean>

In your app configuration you can have things in ejb-jar.xml deployment descriptor like

<javaee:env-entry>
    <javaee:description>JNDI logging context for this app</javaee:description>
    <javaee:env-entry-name>logback/context-name</javaee:env-entry-name>
    <javaee:env-entry-type>java.lang.String</javaee:env-entry-type>
    <javaee:env-entry-value>our-app-context</javaee:env-entry-value>
</javaee:env-entry>

or, if you prefer to have it in the server standalone.xml, do

<subsystem xmlns="urn:jboss:domain:naming:1.1">
    <bindings>
        <simple name="my/jndi/key" value="MyJndiValue"/>
    </bindings>
</subsystem>

the latter (standalone.xml) is a JBoss 7.1 feature, so available in EAP 6.0. In JBoss AS 7.0, a dummy application needs to be used according to this thread .

What if simply:

InitialContext ctx = new InitialContext();
ctx.bind("varName", "value");

If you use that code inside of a JBoss instance you can bind variables into jndi. Remember to use the correct format for varName to bind the variable in the desired scope.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM