WebLogic
下的JNDI编程
1
、JAVA命名和目录服务(JNDI)
(1)
JNDI简介
l JNDI:
分布式计算环境通常使用命名和目录服务来获取共享的组件和资源。命名和目录服务将名称与位置、服务、信息和资源关联起来。它为开发人员提供了查找和访问各种命名和目录服务的通用、统一的接口。
命名服务提供了一种为对象命名的机制,这样你就可以在无需知道对象位置的情况下获取和使用对象。只要该对象在命名服务器上注册过,且你必须知道命名服务器的地址和该对象在命名服务器上注册的JNDI名。就可以找到该对象,获得其引用,从而运用它提供的服务。
命名服务提供名称—对象的映射。目录服务提供有关对象的信息,并提供定位这些对象所需的搜索工具。
Java 命名和目录接口或 JNDI 提供了一个用于访问不同的命名和目录服务的公共接口(JAVA API)。运用一个命名服务来查找与一个特定名字相关的一个对象,JDBC可以用JNDI来访问一个关系数据库。
l JNDI可访问的现有的目录及服务有:
DNS、
XNam 、Novell目录服务、LDAP(Lightweight Directory Access Protocol 轻型目录访问协议)、
CORBA对象服务、文件系统、Windows XP/2000/NT/Me/9x的注册表、RMI、DSML v1&v2、NIS。
l JNDI优点:
ü 包含了大量的命名和目录服务,使用通用接口来访问不同种类的服务;
ü 可以同时连接到多个命名或目录服务上;
ü 建立起逻辑关联,允许把名称同Java对象或资源关联起来,而不必指导对象或资源的物理ID。
(2)JNDI程序包
javax.naming:命名操作;
javax.naming.directory:目录操作;
javax.naming.event:在命名目录服务器中请求事件通知;
javax.naming.ldap:提供LDAP支持;
javax.naming.spi:允许动态插入不同实现。
(3)常用的JNDI操作:
void bind(String sName,Object object);――绑定:把名称同对象关联的过程
void rebind(String sName,Object object);――重新绑定:用来把对象同一个已经存在的名称重新绑定
void unbind(String sName);――释放:用来把对象从目录中释放出来
void lookup(String sName,Object object);――查找:返回目录总的一个对象
void rename(String sOldName,String sNewName);――重命名:用来修改对象名称绑定的名称
NamingEnumeration listBinding(String sName);――清单:返回绑定在特定上下文中对象的清单列表
NamingEnumeration list(String sName);
2
、JNDI的编程
(1
)获得名字服务的初始环境
Contect ctx=new InitailContext();
这样获得的初始环境为默认的命名服务。假如你想改变提供JNDI服务的类(或厂商)和提供JNDI服务的命名服务器,可以采用以下方法:
java.util.Properties h = new java.util.Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
//初始化Context对象。
Context ctx = new InitialContext(h);
(2
)将对象与某个名字相绑定
用bind(String name,Object obj)方法 ,把对象obj绑定到名字name上
例: import javax.naming.*;
public class TestJNDI
{
public static void main(String[] args)
{
try
{
Context ctx=new InitialContext();
Ctx.bind(“JNDIName”,”BindSring”); //把BindSring字符串绑定到JNDIName上
}
catch(NamingException e)
{
e.printStackTrace();
}
}
}
如果名字已绑定或命名服务器没有启动,则会出现NamingException异常
(3
)重新绑定
用ctx.rebind(String name,Object o) 如:
ctx.rebind(“JNDIName”,”BindSring”); //现在BindSring字符串绑定到JNDIName上
(4
)解除绑定
ctx.unbind(String name);
不过你要确保该名字存在,否则出现NameNotFoundException 异常
(5)利用名字查找已绑定的对象
用ctx.lookup(String name);根据name找对象
例:
import javax.naming.*;
public class TestJNDI
{
public static void main(String[] args)
{
try
{
Context ctx=new InitialContext();
Object obj=ctx.lookup(“JNDIName”); //根据JNDI名查找绑定的对象
String str=(String)obj;//强制转换
}
catch(NamingException e)
{
e.printStackTrace();
}
catch(ClassCastException e)
{
e.printStackTrace();
}
}
}
(6
)JNDI
在EJB
组件的编程中的应用(查找EJB HOME
对象)
try
{
Context context = getInitialContext();
Object ref = context.lookup("mathSessionEJBBean"); //look up jndi name
mathSessionEJBHomeObject = (mathSessionEJBHome) PortableRemoteObject.narrow(ref, mathSessionEJBHome.class);
//下面为创建出Remote主接口类型的对象
mathSessionEJBRemote = mathSessionEJBHomeObject.create();
//下面为利用Remote主接口类型的对象对EJBBean类中的方法进行访问
System.out.println("利用无状态会话EJB计算10+20的结果="+mathSessionEJBRemote.getSummary(10,20));
}
catch(Exception e) {
e.printStackTrace();
}
3
、查看 WebLogic
中的JNDI
树
(1)在控制台中右击本服务器的名称,然后在快捷菜单中选择“查看JNDI 树”则显示出新的窗口
(2)在新的窗口中将显示出已经在WebLogic服务器中已经绑定的各个对象
4
、JNDI应用编程例
(1)设计一个Java程序
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class HelloClient
{
void test() throws NamingException
{
java.util.Properties h = new java.util.Properties();
h.put(Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
h.put(Context.PROVIDER_URL, "t3://localhost:7001");
Context ctx = new InitialContext(h); //初始化Context对象。
System.out.println("下面进行设置JNDI");
String str="向服务器邦定的字符串";
ctx.bind("MyStringJNDIName
",str);
System.out.println("下面开始调用JNDI");
String getStr=(String)ctx.lookup("MyStringJNDIName
");
System.out.println("利用JNDI的名称从服务器中所获得的字符串为:"+getStr);
}
public static void main(String[] args) throws Exception
{
System.out.println("\n客户端程序测试开始...\n");
HelloClient client = new HelloClient();
client.test();
System.out.println("\n客户端程序测试结束...\n");
}
}
(2)在JCreator 中引入C:\bea\weblogic81\server\lib中的weblogic.jar文件
(3)执行该Java应用程序
分享到:
相关推荐
- **通过jndi.properties文件**:可以在`CLASSPATH`路径中或`$JAVA_HOME/lib/`目录下放置`jndi.properties`文件来指定缺省属性。 - **通过Hashtable类**:创建一个`Hashtable`对象,并将环境属性放入其中,再传递给`...
这包括了WebLogic Server的编程模型,如WebLogic Server的生命周期管理、部署API、JNDI(Java Naming and Directory Interface)和JCA(Java Connector Architecture)等。开发者在编写自定义插件、部署工具或集成...
WebLogic API提供了对服务器运行时环境的编程访问,包括服务器启动、停止、集群管理、部署、安全管理、JMS队列和主题管理等。这些API主要分为以下几大类别: 1. **服务器管理**:用于创建、启动、停止、重启服务器...
Spring 框架是Java开发中的一个核心组件,它提供了依赖注入、面向切面编程、事务管理等特性,极大地简化了企业级应用的开发。在本项目中,Spring与WebLogic JMS(Java消息服务)的集成展示了如何在Spring环境中使用...
在WebLogic中,JNDI用于查找和管理服务器资源,如数据源、EJBs、邮件会话等。管理员可以通过管理控制台或编程方式来注册和查找JNDI资源,便于应用的部署和维护。 四、集群与高可用性 WebLogic集群是多个独立的...
通过阅读和实践,读者将能够熟练地在WebLogic Server 6.1环境下开发和部署复杂的Java EE应用。 **e-docs网站** 所有BEA产品的官方文档都可以在BEA公司的官方网站上找到。访问BEA主页,点击“Product Documentation...
总结起来,WebLogic EJB的学习不仅包括EJB的基本概念和原理,还包括在WebLogic Server环境下如何部署、配置和优化EJB应用,以及如何利用EJB实现分布式、事务性、安全的企业级服务。这是一门涵盖广泛的技术,对于Java...
- 创建Java客户端项目,添加对WebLogic的JNDI库和EJB3.0项目的依赖。 - 使用JNDI查找机制获取EJB的引用,然后调用其方法。例如: ```java Context ctx = new InitialContext(); CompanyRemote company = ...
在Java应用服务器如Tomcat、WebLogic、JBoss等中,你需要先配置一个JNDI数据源。这通常在服务器的配置文件中完成,比如在Tomcat中,数据源配置在`$CATALINA_HOME/conf/server.xml`的`<Context>`元素内。你需要指定...
通过遵循J2EE规范,应用可以标准化、遵循一致的编程指南,并且能够在任何兼容的服务器上部署。J2EE的关键技术包括Servlets、JavaServer Pages (JSPs)、JavaBeans、Enterprise JavaBeans (EJBs)、Java Authentication...
5. **资源管理**:可以创建、编辑和管理WebLogic Server的资源,如数据源、JMS队列和主题、JNDI条目等。 6. **代码提示与自动完成**:基于Java EE规范,提供智能代码补全和错误检查,提高开发效率。 四、WebLogic ...
在IT行业中,Spring框架是Java应用开发中的一个关键组件,尤其在企业级应用中,它提供了丰富的功能,如依赖注入、AOP(面向切面编程)以及与各种服务的集成,包括消息传递系统。WebLogic Server是Oracle公司的一款...
1. **Java基础**: Java是WebLogic的基础,理解其基本语法、类库、多线程、网络编程和异常处理等概念是必要的。Java EE标准如Servlet、JSP、EJB等也是构建WebLogic上应用程序的重要组成部分。 2. **WebLogic Server...
在Java EE应用服务器(如Tomcat、JBoss、WebLogic、GlassFish等)中,数据源通常会被配置为一个JNDI资源。开发者无需直接处理数据库连接的创建和关闭,只需通过JNDI查找即可获取连接。 1. **配置数据源**:在应用...
通过上述介绍可以看出,在WebLogic环境下进行JMS消息队列的开发不仅涉及到基本的编程模型,还需要考虑诸如事务管理、消息持久化以及系统高可用性等高级特性。掌握这些知识和技术,对于构建高效稳定的企业级应用至关...
在“Spring JMS 消息处理-基于JNDI”的博文中,作者可能会讲解如何在应用服务器如Tomcat或WebLogic中配置JNDI资源,以及如何在Spring配置文件中声明JNDI查找。 1. **JMS核心概念**:首先,博客会介绍JMS的基本概念...
命名和目录服务是J2EE架构中的关键组件,WebLogic Server集成了Java Naming and Directory Interface (JNDI)。JNDI允许应用查找和绑定资源,例如EJB、数据源和邮件会话,这对于分布式系统中的服务发现和配置非常有用...
总之,定制WebLogic LDAP Authentication Provider是一项涉及深入理解WebLogic安全框架、LDAP协议和Java编程的任务。通过这项工作,我们可以增强企业的安全策略,提高用户管理和认证的效率,同时保持与企业目录服务...
4. **资源管理**:Spring 可以通过 JNDI 查找 WebLogic Server 提供的资源,如数据源、邮件会话等。 5. **安全管理**:Spring Security 可以与 WebLogic Server 的身份验证和授权机制集成,实现统一的安全策略。 ...
除了上述技术,`wlfullclient.jar`还可能包含其他WebLogic Server客户端API,如JNDI(Java Naming and Directory Interface)用于查找和绑定资源,JTA(Java Transaction API)用于管理事务,以及WS-Security相关的...