- //webSphere
- Properties properties= new Properties();
- properties.put(javax.naming.Context.PROVIDER_URL,"<a href="iiop:///">iiop:///");
- properties.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,
- "com.ibm.ejs.ns.jndi.CNInitialContextFactory");
- new InitialContext(properties);
- //JBoss
- Properties p = new Properties();
- p.put(Context.INITIAL_CONTEXT_FACTORY, "org.jnp.interfaces.NamingContextFactory");
- p.put(Context.URL_PKG_PREFIXES, "org.jboss.naming:org.jnp.interfaces");
- p.put(Context.PROVIDER_URL, "<a href="jnp://localhost:1099">jnp://localhost:1099");
- InitialContext ctx = new InitialContext(p);
- //SUN
- Properties props = new Properties();
- props.setProperty( "java.naming.factory.initial" ,
- "com.sun.enterprise.naming.SerialInitContextFactory" );
- //com.sun.jndi.cosnaming.CNCtxFactory 似乎是这个!
- props.setProperty( "java.naming.provider.url" , "localhost:3700" );
- InitialContext = new InitialContext(props);
- //Weblogic10
- Properties props = new Properties();
- props.setProperty( "java.naming.factory.initial" ,
- "weblogic.jndi.WLInitialContextFactory" );
- props.setProperty( "java.naming.provider.url" , "<a href="t3://localhost:7001">t3://localhost:7001" );
- InitialContext = new InitialContext(props);
- JBOSS 环境下 JNDI 树的命名约定:
- ( 1 ) java:copm 这个上下文环境和其子上下文环境仅能被与之相关的特定应用组件访问和使用
- ( 2 ) java : 子上下文环境和绑定的对象只能被 Jboss 服务器虚拟机内的应用访问
- ( 3 )其他上下文环境 只要实现序列化就可以被远程用户调用。
- 输入下面 URL http://localhost:8080/jmx-console/ , 点击“ service=JNDIView ” link,在出现的page里找到“ List of MBean operations: ”栏的“list() ”方法,click “Invoke ”button,就可以查看已经帮定的JNDI Name
- JBOSS 下默认JNDI邦定名称:
- 1> 如果 EJB 打包进 后缀为 *.ear 的 J2EE 发布文件 ,默认的 JNDI 路径名称是
- 访问本地接口: EAR-FILE-BASE-NAME/EJB-CLASS-NAME/local
- 访问远程接口: EAR-FILE-BASE-NAME/EJB-CLASS-NAME/remote
- 例: EJB HelloWorld 打包进名为 HelloWorld.ear 的 J2EE 应用,访问她远程接口的 JNDI 名是: HelloWorld/HelloWorldBean/remote
- 2> 如果 EJB 应用 打包成后缀为 *.jar 的发布文件 , 默认的 JNDI 路径名称是
- 访问本地接口: EJB-CLASS-NAME/local
- 访问远程接口: EJB-CLASS-NAME/remote
- 例: HelloWorld 应用打包成 HelloWorld.jar 文件,访问她远程接口的 JNDI 名称是: HelloWorldBean/remote
- 注意: EJB-CLASS-NAME 是不带包名的 ,如 com.foshanshop.ejb3.impl.HelloWorldBean 只需取 HelloWorldBean 。
- 目前网上很多教材获取 JNDI 路径名的方式不适用在 jboss 下,如:
- HelloWorld helloworld = (HelloWorld) ctx.lookup(HelloWorld.class.getName());
- 这种方式适用于 Sun Application Server 及 glassfish
- //该片段来自于http://www.codesnippet.cn/detail/160120131700.html
来源: http://www.codesnippet.cn/detail/160120131700.html