EJB调用 jndi获得session

要设置JDNI环境属性,可以通过以下几种方法实现:

1)在InitialContext构造函数中设置;

2)使用系统属性;

3)使用资源文件。
方法一:在InitialContext构造函数中传入一个hashtable,代码为:
Hashtableenv=newHashtable();
env.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
env.put(Context.PROVIDER_URL,"t3://localhost:7001");
Contextctx=newInitialContext(env);
方法二:在启动Java应用程序的时候通过系统属性提供JNDI环境属性值,比如使用如下命令来设置JNDI环境属性:java-Djava.naming.factory.initial=weblogic.jndi.WLInitialContextFactory-Djava.naming.provider.url=t3://localhost:7001
方法三:使用资源文件使得设置于应用程序完全分离,便于维护。服务提供者和JNDI类库可以自动定位并使用这些资源文件,因此这种方法最灵活。我们可以编辑一个jndi.properties文件,内容为(对于weblogic):
java.naming.factory.initial=weblogic.jndi.WLInitialContextFactory

java.naming.provider.url=t3://localhost:7001
然后保证其路径包含在环境变量中(比如放在编译后的classes文件夹下)以保证能够被正确定位。这样不用再在构造函数中提供环境属性就可以创建InitialContext对象,例如Contextctx=newInitialContext()。但是对于一些比较敏感的信息比如用户名密码等,则不易包含在这种资源文件中。这种自己编写的资源文件称为应用程序资源文件,另外还有一种资源文件由JNDI服务提供者提供,成为提供者资源文件,在这种资源文件中放置本身服务的特定属性,对于这类资源文件中设置的某个java.naming.factory属性将覆盖其他已经设置的对应的属性。客户机在连接某个JNDI命名服务时,首先如果所有环境属性都使用InitialContext构造函数传递,这些属性就用来初始化语境,其次JNDI环境会添加系统属性,最后添加被包含的资源文件中的环境属性。

==================

java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces

weblogic部署ejb位置

你保证你写在weblogic-ejb-jar.xml配置文件里的jndiname和你在client中调用的常量JNDI_NAME

你可能感兴趣的:(ejb)