`
yangzb
  • 浏览: 3472398 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

各种服务器中的JNDI设置以及获取方法

阅读更多
各种服务器中的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
分享到:
评论
1 楼 swanky_yao 2010-06-24  
金蝶apusic V6: 
   Hashtable env = new Hashtable();
   //env.put("apusic.naming.clustering","true") ;
   env.put(Context.INITIAL_CONTEXT_FACTORY,"com.apusic.naming.jndi.CNContextFactory") ;
   env.put(Context.PROVIDER_URL,"iiop://ip")
   
   Context ctx = new InitialContext(env) ;
   
东方通tongWeb5.0:
    java.naming.factory.initial=com.tongweb.naming.SerialInitContextFactory
    java.naming.factory.url.pkgs=com.tongweb.naming
    # Required to add a javax.naming.spi.StateFactory for CosNaming that
    # supports dynamic RMI-IIOP.
    java.naming.factory.state=com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl

相关推荐

    连接基于文件系统实现的JNDI服务器所需要的JAR包

    基于文件系统实现的JNDI服务器的连接所需要的驱动包 fscontext.jar providerutil.jar 超好用!

    JNDI-Injection-Exploit:JNDI注入测试工具(生成JNDI链接的工具可以启动多个服务器来利用JNDI Injection漏洞,例如Jackson,Fastjson等)

    使用此工具可以获取JNDI链接,可以将这些链接插入POC以测试漏洞。 例如,这是一个Fastjson vul-poc: { " @type " : " com.sun.rowset.JdbcRowSetImpl " , " dataSourceName " : " rmi://127.0.0.1:1099/Object ...

    Java Jndi数据连接池,sql2000或者sql2005数据库

    对应java代码中获得连接方法:(代码摘要) private Connection dbcon; Context ic = new InitialContext(); DataSource source = (DataSource) ic.lookup("java:comp/env/jdbc/jndidemo"); dbcon = source.get...

    Simple-JNDI:通过JNDI查找访问属性文件。 从JNDI获取数据源

    Simple-JNDI旨在解决的第二个问题是从应用程序中的任何位置轻松访问应用程序配置。 如果您唯一的目的是测试或使用依赖于Tomcat之外的Tomcat JNDI环境的类,或者仅需要基于JNDI的数据源,请 (不要与Simple-JNDI...

    JNDI:JNDI注入利用工具

    获取服务器基础信息 打印出System.getProperties()中的信息 命令 命令执行 反射调用forkandexec执行命令 数据源黑客 获取Spring DataSource明文 获取缓存在某些中的数据源 目录列表 目录遍历 使用File对象列目录 ...

    服务器端接口编程.pptx

    01 13.1 JNDI 数据源配置 02 03 04 13.2 Log4J 与 SLF4J 13.3 MyBatis vs Hibernate 13.4 项目实战:"移动商城"(四) 05 13.5 本章小结 服务器端接口编程全文共45页,当前为第2页。 本章导读 面向对象的开发过程中...

    java 面试题 总结

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    超级有影响力霸气的Java面试题大全文档

    与cgi的区别在于servlet处于服务器进程中,它通过多线程方式运行其service方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于servlet。...

    J2EE中文版指南 CHM格式 带全文检索

    在Bean管理事务中不允许使用的方法 222 四.企业Bean事务摘要 222 五.事务超时 222 六.隔离级别 223 七.更新多个数据库 223 八.Web 组件事务 225 第15章 安全 226 一.纵览 226 二.安全角色 227 声明和连接角色...

    java源码包3

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目源代码

    EJB 模拟银行ATM流程及操作源代码 6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,...

    JAVA上百实例源码以及开源项目源代码 java开源包2

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA面试题最全集

    方法在垃圾收集器将对象从内存中清除出去之前做必要的清理工作。这个方法是由垃圾收集器在确定这个对象没有被引用时对这个对象调用的。它是在 Object 类中定义的,因此所有的类都继承了它。子类覆盖 finalize() ...

    基于属性文件的数据库配置

    这是一个用jndi获取数据的方法,当我们没有用这种方法时我们把数据库访问编写在程序代码中,程序完成以后把编译好的.class文件发布到服务器上,但是如果数据库发生变化或者换了另外的数据库那就不容易维护和扩展了这...

    NC65安全漏洞补丁.rar

    在LoginUI类中的login方法打断点,启动Idea进行跟踪调试,当跟踪到loginImple方法时,发现多处调用了NCLocator的lookup方法查找Service接口进行操作,通过跟踪发现,实际使用了RmiNCLocator类,RmiNCLocator类的...

    java源码包2

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    JAVA上百实例源码以及开源项目

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

    配置Spring数据源 c3p0与dbcp

    不管通过何种持久化技术,都必须通过数据连接访问数据库,在Spring中,数据连接是通过数据源获得的。...在Spring中,你不但可以通过JNDI获取应用服务器的数据源,也可以直接在Spring容器中配置数据源

    java源码包---java 源码 大量 实例

    6个目标文件,EJB来模拟银行ATM机的流程及操作:获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,并将当前的计数器初始化,调用每一个EJB对象的count()方法,保证Bean正常被激活和钝化,EJB对象是用...

Global site tag (gtag.js) - Google Analytics