public class TestJbossJNDI {
public TestJbossJNDI() {
super();
// TODO Auto-generated constructor stub
}
public static void main(String[] args) { try {
Properties env = new Properties();
//载入jboss的SPI相关参数,包括初始上下文工厂,服务URL,等等
env.load(new FileInputStream("jbossJndi.properties"));
env.list(System.out);
//通过JNDI api 初始化上下文
InitialContext ctx = new javax.naming.InitialContext(env);
System.out.println("Got context");
//create a subContext
ctx.createSubcontext("/sylilzy");
ctx.createSubcontext("sylilzy/sily");
//rebind a object
ctx.rebind("sylilzy/sily/a", "I am sily a!");
ctx.rebind("sylilzy/sily/b", "I am sily b!");
//lookup context
Context ctx1=(Context)ctx.lookup("sylilzy");
Context ctx2=(Context)ctx1.lookup("/sylilzy/sily");
ctx2.bind("/sylilzy/g", "this is g");
//lookup binded object
Object o;
o=ctx1.lookup("sily/a");
System.out.println("get object from jndi:"+o);
//rename the object
ctx2.rename("/sylilzy/g", "g1");
o=ctx2.lookup("g1");
System.out.println("get object from jndi:"+o);
} catch (Exception e) {
e.printStackTrace();
}
}
}
Results:
-- listing properties --
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=jnp://localhost:1099
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
Got context
get object from jndi:I am sily a!
get object from jndi:this is g
程序中jbossJndi.properties文件的内容为:
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.factory.url.pkgs=org.jboss.naming:org.jnp.interfaces
java.naming.provider.url=jnp://localhost:1099
上述示例程序在jboss服务器的jndi树上建立了几个上下文,并bind了几对象,
结果为:
-----------------------------
/sylilzy/sily
-----------------------------
/sylilzy/sily/b:I am sily b!
/sylilzy/sily/a:I am sily a!
/sylilzy/sily/g1:this is g
-----------------------------
分享到:
相关推荐
-- Sample database pool configuration --> <!-- The JDBC name is java:comp/env/jdbc/test --> <jndi-name>jdbc/mysql</jndi-name> <url>jdbc:mysql://localhost:3306/test <user></user> <password></...
### JNDI数据源配置详解 #### 一、引言 在现代企业级应用开发中,数据库连接管理是一项至关重要的任务。为了简化这一过程并提高应用程序的可移植性和可维护性,Java命名与目录接口(Java Naming and Directory ...
ResultSet rs = stmt.executeQuery("SELECT * FROM sample_table"); while (rs.next()) { // 处理结果集 } rs.close(); stmt.close(); conn.close(); } catch (NamingException | SQLException e) { // ...
EJB提供了远程接口供客户端调用,如`testEJBProjectClient`可能就是该项目的客户端部分,它通过JNDI(Java Naming and Directory Interface)查找并调用服务器上的EJB服务。 5. **接口与实现**: EJB通常有三个...
- **JNDI(Java Naming and Directory Interface)**:EJB通过JNDI查找服务,项目中可能包含查找EJB的代码示例。 - **测试(Testing)**:为了验证EJB的正确工作,项目可能包含JUnit测试或集成测试,使用`@EJB`注解...
Accessing the sample app through Apache web server 315 Running multiple server instances from a single installation 315 Clustered Helloworld-cluster application 317 Updating workers.properties 317...
9. **JNDI(Java Naming and Directory Interface)**:用于在分布式环境中查找和管理资源的服务,如数据库连接池。 10. **JTA(Java Transaction API)**:处理事务管理,确保在多步骤操作中的数据一致性。 在 ...
`CatalogDAOFactory`是工厂方法的一个典型实例,它根据JNDI查找来动态加载`CatalogDAO`的具体实现,这使得系统可以根据数据库的不同类型使用不同的数据访问对象,而无需修改其他代码。 总的来说,工厂模式提供了一...
3. **轻量级会话bean**:允许创建无需JNDI查找的bean,更便于测试和使用。 4. **增强的定时器服务**:提供了在bean内部定义定时任务的能力。 5. **更好的CDI集成**:与Contexts and Dependency Injection (CDI)框架...
它提供了诸如JNDI、JTA、JPA、JMS和JavaMail等服务,使得开发者能够在不牺牲性能的前提下,享受到完整的Java EE功能。通过使用`mvn compile tomee-embedded:run`命令,我们可以快速启动一个内嵌的TomEE服务器,这极...
在这个`Context`元素内部,我们添加了一个`Resource`元素来声明一个数据源,这里命名为`jdbc/sample_db`。数据源是用于管理数据库连接的工厂,它可以提供线程安全的连接池。在这个例子中,我们使用了Apache Commons ...
总结,Java Servlet连接MySQL数据库的过程包括:配置服务器(Tomcat),在`server.xml`中定义数据源,配置Web应用的`web.xml`,在Servlet中通过JNDI查找并使用数据源来获取连接。这种方式有利于管理资源,提高性能,...
### Axis JMS Sample详解 #### 一、概述 在IT领域中,Axis 是一个非常流行的开源框架,用于创建和调用Web服务。本篇将基于`axisJMSSample`这一主题,详细介绍如何利用JMS(Java消息服务)作为传输层与Axis结合使用...
实现Servlet类,通过`@Resource`注解注入数据源,然后使用JNDI查找来获取连接: ```java import javax.annotation.Resource; import javax.sql.DataSource; import java.sql.Connection; import java.sql....
- <Context path="/sample" docBase="sample" ...>:定义了一个Web应用上下文,路径为/sample,文档基础为sample目录。 - <Resource ...>:定义了一个资源,这里是一个数据库连接资源(DataSource),用于连接名为...
- `QUEUE_NAME`:待发送消息的目标队列名称,例如"queue.sample"。 - `SECURITY_PRINCIPAL` 和 `SECURITY_CREDENTIALS`:EMS服务器的用户名和密码,用于身份验证。 接着,程序初始化了JMS上下文、队列连接、会话和...
(and their usage of JNDI), connection pooling functionality (a framework for connection caching implementations), and a sample connection caching implementation provided by Oracle. Chapter 16, ...