若要使用ejb,必须要有ejb的容器,现在的容器有jboss,weblogic等,现使用jboss编写第一个ejb程序。
到http://downloads.sourceforge.net/sourceforge/jboss/地址去下载jboss,ejb3必须下jboss4以上的版本,ejb2下载jboss3就可以了。需在工程中引入jbossall-client.jar。
首先创建一个ejb项目,注意需选择ejb3.
创建一个接口
public interface HelloWorld {
public String SayHello(String name);
}
然后新建一个无关态会话Bean,一般的命名规则是:接口名+Bean。实现上面的接口要加入两个注释@Remote和@Stateless。
@Stateless表示无状态会话Bean,@Remote表示这个无状态会话Bean的remote接口。。无状态会话Bean 是一个简单的POJO(纯粹的面向对象思想的java 对象),EJB3.0 容器自动地实例化及管理这个Bean。HelloWorldBean.java代码如下:
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote ({HelloWorld.class})
public class HelloWorldBean implements HelloWorld {
public String SayHello(String name) {
return name +"说:Hello World.";
}
}
这样,就把EJB模块开发完成!可以发布到Jboss中去,(注意:Jboss的版本要在4.0.5以上,以前的版本可能出现报错现象)。启动jboss容器,打印出如下信息
17:33:58,062 INFO [DLQ] Bound to JNDI name: queue/DLQ
17:33:58,203 INFO [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=ConnectionFactoryBinding,name=JmsXA' to JNDI name 'java:JmsXA'
17:33:58,609 INFO [JmxKernelAbstraction] creating wrapper delegate for: org.jboss.ejb3.stateless.StatelessContainer
17:33:58,625 INFO [JmxKernelAbstraction] installing MBean: jboss.j2ee:jar=TestEJB3.jar,name=HelloWorldBean,service=EJB3 with dependencies:
17:33:58,906 INFO [EJBContainer] STARTED EJB: com.sample.HelloWorldBean ejbName: HelloWorldBean
17:33:58,968 INFO [EJB3Deployer] Deployed: file:/E:/developTools/jboss-4.2.0.GA/server/default/deploy/TestEJB3.jar/
17:33:59,015 INFO [TomcatDeployer] deploy, ctxPath=/jmx-console, warUrl=.../deploy/jmx-console.war/
17:33:59,281 INFO [Http11Protocol] Starting Coyote HTTP/1.1 on http-127.0.0.1-8080
17:33:59,312 INFO [AjpProtocol] Starting Coyote AJP/1.3 on ajp-127.0.0.1-8009
17:33:59,343 INFO [Server] JBoss (MX MicroKernel) [4.2.0.GA (build: SVNTag=JBoss_4_2_0_GA date=200705111440)] Started in 17s:15ms
说明发布成功,然后可以到http://localhost:8080>>
JMX Console >>
service=JNDIView >>invoke>>Global JNDI Namespace找到发布的响应服务,若没有找到jndi,则发布服务失败。成功后即可以打开客户端去访问。
第二步:开了一个客户端来访问这个EJB。当一个无状态会话Bean 发布到EJB 容器时,容器就会为她创建一个对象stub,并把她注册进容器的JNDI 目录,客户端代码使用她的JNDI 名从容器获得他的stub。通过这个stub,客户端可以调用她的业务方法。例子代码如下:
import java.util.Properties;
import javax.naming.InitialContext;
public class HelloWorleClient {
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");
props.setProperty("java.naming.factory.url.pkgs", "org.jboss.naming");
//props.setProperty("", "");
System.getProperties();
try {
InitialContext ctx = new InitialContext(props);
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(helloworld.SayHello("大家"));
} catch (Exception ex) {
System.out.println(ex.getMessage());
}
}
}
在JBoss容器中发布TestEJB3,然后执行HelloWorldClient.java将得到“大家说:Hello World.”结果。
分享到:
相关推荐
**EJB3.0之HelloWorld** EJB(Enterprise JavaBeans)是Java平台企业版(Java EE)的一部分,主要用于构建可扩展、可移植和可信赖的企业级应用。EJB3.0是EJB规范的一个重要版本,它在之前的基础上进行了重大改进,...
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote"); out.println(helloworld.SayHello("佛山人")); 5.用ant或eclipse,把客户端文件打成war包,发布到jboss上 6.输入...
在EJB3 Maven HelloWorld项目中,ejb-jar.xml文件可能非常简单,主要用来声明Bean的存在及其接口。 5. **JBoss5部署**:在部署到JBoss5之前,你需要确保已经正确安装了JBoss服务器,并且配置了Maven的JBoss插件。...
在本示例中,我们探讨的是一个简单的EJB2.0 HelloWorld程序,主要涉及EJB的三个核心部分:Bean类、组件接口和Home接口,以及配置文件ejb-jar.xml。 1. **Bean类**: Bean类是EJB的核心,它实现了业务逻辑。在这个...
**企业级JavaBeans(EJB)2.0详解——基于Helloworld示例** EJB(Enterprise JavaBeans)是Java EE(Java Platform, Enterprise Edition)平台的核心组成部分,它为开发分布式、事务处理、安全和可扩展的企业级应用...
在实际应用中,我们还需要在服务器上部署EJB模块,通常包含一个ejb-jar.xml配置文件,但在这个简单的例子中,可能只需通过IDE的自动部署功能即可。部署后,可以通过服务器的管理界面或编程方式调用bean方法。 标签...
初学ejb,一个入门例子。 两个project,一个为ejb,一为客户端。 软件版本:jboss-4.2.3.GA,Jdk1.6.0,myeclipse 10.0 部署ejb后,客户端导入jboss的client下的所有jar包。
在提供的`ejb3HelloWorld`示例中,我们可能看到一个简单的EJB 3.0应用,包含一个状态less session bean(如`HelloBean`)和对应的接口(如`Hello`)。这个例子通常会演示如何声明bean,如何注入依赖(如`@...
### MyEclipse+EJB3+JBoss4部署EJB+Web项目HelloWorld详解 #### 一、环境搭建 ##### 1. 安装 JDK 1.6 在开始之前,请确保您的开发环境中已经安装了 Java 开发工具包 (JDK) 1.6 版本。如果尚未安装,请访问 Oracle ...
通过"HelloWorld1"的学习,开发者可以了解JavaEE的基本开发环境和流程,为进一步学习JavaEE的其他高级特性,如JPA(Java Persistence API)、JSF(JavaServer Faces)、CDI(Contexts and Dependency Injection)...
至于“ejb3HelloWorld”这个压缩包文件,通常它可能包含了一个简单的EJB 3示例项目,用于展示如何创建和部署一个基本的EJB,以及如何通过注解注入其他bean。在这个项目中,你可能会看到如下的结构: - `ejbModule`...
在EJB3.0的第一个"Hello, World"项目中,我们将学习如何创建和配置一个简单的EJB组件。首先,我们需要了解EJB的基本概念。EJB分为三种类型:会话bean(Session Beans)、实体bean(Entity Beans)和消息驱动bean...
支持远程调用功能,例如EJB、JMS、RMI、Hessian、Burlap、HttpInvoker、JAX-RPC等。 10. **spring-support.jar** 提供了一些额外的功能支持,如缓存管理、定时任务、邮件服务等。 11. **spring-web.jar** ...
标题:J2EE-Ejb-Jboss 描述:j2ee_jboss_ejb(English)清晰 标签:Ejb 从给定的文件标题、描述、标签以及部分内容中,我们可以提炼出以下关键知识点: ### 一、J2EE与EJB简介 J2EE(Java 2 Platform, Enterprise ...
把文件用weblogic部署上去,然后反编译jar中的bind类 执行主方法weblogic就有打印出hello ejb的字样了,很好的一个ejb实例。
- **访问URL**:通过`http://localhost:8080/helloworld/`访问应用。 #### 九、总结 通过这个简单的Hello World示例,我们可以看到Seam框架如何简化了Java Web应用程序的开发过程。从实体定义到页面处理,再到事件...
HelloWorld helloworld = (HelloWorld) ctx.lookup("HelloWorldBean/remote"); ``` 这里,`ctx.lookup()`方法用于根据EJB的JNDI名称查找并实例化EJB。由于在同一个JVM内,无需显式设置`InitialContext`的环境属性...
3. **创建部署描述符**:`ejb-jar.xml`文件包含了EJB组件的元数据,如名称、事务属性和依赖关系。 4. **编译和部署**:编译源代码并打包成`ejb-jar`文件,然后使用EJB容器的工具进行部署。 5. **编写客户端程序**:...