JNDI Sample

2440 ワード





    public class TestJbossJNDI {

    public TestJbossJNDI() {
    super();
    // TODO Auto-generated constructor stub
    }
    public static void main(String[] args) { try {
    Properties env = new Properties();
    // jboss SPI , , URL, 
    env.load(new FileInputStream("jbossJndi.properties"));
    env.list(System.out);
    // JNDI api  
    InitialContext ctx = new javax.naming.InitialContext(env);
    System.out.println("Got context");
    //create a subContext
    ctx.createSubcontext("/sylilzy");
    ctx.createSubcontext("sylilzy/sily");
    //rebind a object
    ctx.rebind("sylilzy/sily/a", "I am sily a!");
    ctx.rebind("sylilzy/sily/b", "I am sily b!");
    //lookup context
    Context ctx1=(Context)ctx.lookup("sylilzy");
    Context ctx2=(Context)ctx1.lookup("/sylilzy/sily");
    ctx2.bind("/sylilzy/g", "this is g");
    //lookup binded object
    Object o;
    o=ctx1.lookup("sily/a");
    System.out.println("get object from jndi:"+o);
    //rename the object
    ctx2.rename("/sylilzy/g", "g1");
    o=ctx2.lookup("g1");
    System.out.println("get object from jndi:"+o);
    } catch (Exception e) {
    e.printStackTrace();
    }
    }
    }

Results:
-- listing properties --
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
Got context
get object from jndi:I am sily a!
get object from jndi:this is g
プログラム中jbossJndi.propertiesファイルの内容は次のとおりです.
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
上記の例示的なプログラムは、jbossサーバのjndiツリー上にいくつかのコンテキストを確立し、bindはいくつかのオブジェクトを構築し、
結果:
-----------------------------
/sylilzy/sily
-----------------------------
/sylilzy/sily/b:I am sily b!
/sylilzy/sily/a:I am sily a!
/sylilzy/sily/g1:this is g
-----------------------------