各种服务器中的JNDI设置以及获取方法
|
WebSphere
Properties properties= new Properties(); properties.put(javax.naming.Context.PROVIDER_URL,"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, "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"
,
"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
|
本文详细介绍了在不同服务器环境中(JBoss, WebSphere, WebLogic等)如何配置JNDI,并提供了具体的Java代码示例。同时,还阐述了JBoss环境下JNDI树的命名约定,帮助开发者更好地理解和使用JNDI。

7323

被折叠的 条评论
为什么被折叠?



