EJB是业务层,通常被客户端调用,客户端可以是J2EE、J2SE、J2ME等。在这里用J2SE程序作客户端调用。
package test.ejb;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.taoistwar.ejb.HelloWorld;
public class EJBClient {
public static void main(String[] args) {
Properties props = new Properties();
props.setProperty("java.naming.factory.initial",
"org.jnp.interfaces.NamingContextFactory");
props.setProperty("java.naming.provider.url",
"localhost:1099");
try {
InitialContext ic = new InitialContext(props);
HelloWorld hw = (HelloWorld) ic.lookup(
"HelloWorldBean/remote");
String message = hw.sayHello("TaoistWar");
System.out.println(message);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
字符串“java.naming.factory.initial”用来指定链接工厂
,JBoss的实现类是org.jnp.interfaces.NamingContextFactory是在JBoss下的client文件夹下的jnp-client.jar中。
字符串“java.naming.provider.url”是链接字符串
,用来指定提供服务的服务器和端口。
上面的参数根据不同的服务器,有不同的设置。
为了提高代码的灵活性,把以上的信息用一个properites文件来配置
:
在类路径(src)下创建jndi.properties文件,EJB链接工厂会自动查找该文件,内容如下:
java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.provider.url = localhost:1099
客户端代码修改如下:
package test.ejb;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
import com.taoistwar.ejb.HelloWorld;
public class EJBClient {
public static void main(String[] args) {
try {
InitialContext ic = new InitialContext();
HelloWorld hw = (HelloWorld) ic.lookup("HelloWorldBean/remote");
String message = hw.sayHello("TaoistWar");
System.out.println(message);
} catch (NamingException e) {
e.printStackTrace();
}
}
}
把应用打包成“*.jar”后,默认的全局JNDI规则如下
:
(1):本地接口:EJB-Class-Name/local
(2):远程接口:EJB-Class-Name/remote
如在1.EJB的HelloWorld中的远程接口名称是:HelloWorldBean/remote
分享到:
相关推荐
1. **EJB客户端接口**:了解EJB客户端如何与远程服务器上的EJB组件进行交互,包括定义Home接口和Remote接口,以及调用EJB方法的步骤。 2. **JNDI查找**:学习如何通过Java Naming and Directory Interface (JNDI) ...
描述中提到的“开发EJB项目时需要的jar包”表明了`javax.ejb-3.1.2.2.jar`对于EJB项目的必要性。在开发环境中,这个jar需要被添加到类路径(classpath)中,以便编译和运行包含EJB的代码。在生产环境中,这个库通常...
EJB是一种服务器端组件模型,它为开发可部署在分布式计算环境中的复杂业务应用程序提供了框架。 【描述】"javax.ejb.jar.zip" 提供了EJB规范的实现,使得开发者能够创建可复用、可部署的服务器端组件。这些组件可以...
2. **容器服务**:EJB容器提供了诸如事务管理、安全性、性能优化等服务,开发者无需直接处理这些复杂问题。理解如何利用这些服务是关键。 3. **接口与实现**:EJB组件通过接口与外界交互,这包括远程接口、本地接口...
这个压缩包“EJB.rar”包含了五本关于EJB设计模式的书籍,这将为学习者提供深入理解EJB开发和设计的强大资源。 EJB设计模式是解决企业级应用开发中常见问题的最佳实践。设计模式是经过时间和实践验证的解决方案模板...
- EJB客户端的开发。 - 远程调用EJB服务。 - 客户端认证和授权。 - 客户端故障转移和重试机制。 - 客户端应用程序的安全性考虑。 - **关键知识点:** - 客户端开发工具的选择。 - 远程调用的最佳实践。 - ...
4. 客户端代码:用于调用EJB的方法,可以是远程客户端或在同一应用服务器内的本地客户端。 "www.pudn.com.txt"可能是一个文档,提供了关于EJB的更详细说明,或者是教程的补充材料。而"hello-ejb"很可能是一个包含...
开发EJB 2.0涉及编写bean类、接口、部署描述符文件(ejb-jar.xml和jbosscmp-jar.xml),以及可能的实体bean的实体bean映射文件(CMP的情况下)。部署时,ejb-jar文件和相关的资源放入应用服务器的特定目录下,由...
EJB3引入了许多重要的改进,包括POJO(Plain Old Java Object)风格的开发、注解驱动的配置以及对容器托管功能的增强,从而降低了复杂性并提高了开发效率。 #### 二、环境配置与入门案例 在构建基于EJB3的应用之前...
【wlfullclient.jar 客户端开发包 rmi\jms\ejb3 网络安全人必备】 本文将详细介绍`wlfullclient.jar`客户端开发包,它是一个专为WebLogic服务器开发的全面工具集,包含了对RMI(Remote Method Invocation)、JMS...
通过学习“TEST11.rar”中的内容,你可以深入理解EJB如何与Java EE环境集成,如何利用EJB服务构建企业级应用,并掌握EJB的开发和部署流程。这将对提升你的Java EE开发技能大有裨益。在实际工作中,EJB常用于大型...
EJB 3.0是EJB规范的一个重大改进,引入了许多简化开发的新特性,使其更加轻量级,更易于使用。本教程将深入探讨EJB 3.0的核心概念、设计模式以及实战技巧。 **核心特性** 1. **注解驱动**:EJB 3.0放弃了XML配置,...
【标题】"myeclipse开发EJB+Webapp"涵盖了在Eclipse集成开发环境中创建和部署Enterprise JavaBeans(EJB)以及与Web应用程序交互的知识点。EJB是Java平台企业版(Java EE)的核心组件,主要用于构建可扩展、分布式、...
EJB2在Java开发历史上占据了重要地位,特别是在处理企业级服务如事务管理、安全性、状态管理和并发控制等方面。 EJB2的核心概念主要包括以下几个部分: 1. **会话bean(Session Beans)**:这些是无状态或有状态的...
6. **测试EJB**:可以通过EJB客户端(如Java SE应用或另一个EJB)进行远程调用测试,也可以在Eclipse内使用JUnit进行单元测试。 7. **集成测试**:在完整的应用环境中测试EJB,确保它们能正确地与其他组件(如Web...
### Eclipse开发EJB文档 #### 一、Session Bean 环境配置及开发过程 **1. 配置编译环境** 在配置EJB开发环境时,需注意EJB 2.0规范所对应的Java环境版本。由于EJB 2.0规范发布时间较早(2001年),其对JDK的要求...
【WTP1.5.3 开发ejb步骤】 Web Tools Platform (WTP) 是一个由Eclipse基金会维护的开源项目,它为Java Web应用程序和Java EE(企业版)应用程序的开发提供了强大的集成开发环境(IDE)支持。在WTP1.5.3版本中,开发...