`
hjj20040849
  • 浏览: 113890 次
  • 来自: 广州
社区版块
存档分类
最新评论

第一个EJB程序——HelloWorld(无状态会话bean)

    博客分类:
  • EJB
阅读更多

前面简单介绍了一下EJB的分类它的环境配置,下面就写下他的第一个程序。我记得每一次学习语言的时候,第一个程序都是HelloWorld,所以,在学习EJB的时候也不例外,下面就让我们来写下第一个EJB程序——HelloWorld。

(1)新建一个项目EJB_HelloWorld.

(2)打开window---->preference------>User Libraies ,新建一个Libraries,添加X(jboss的安装目录):\Program Files\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GA\client里的所有jar包。


然后在项目中引入这个User Libaries

(3)

(a)首先我们先写一个EJB接口。。

 

 

package com.ejb;

public interface HelloWorld {
	public String sayHello(String name);
}

 

 

(b)然后写一个接口实现类。

 

 

package com.ejb.impl;

import javax.ejb.Remote;
import javax.ejb.Stateless;

import com.ejb.HelloWorld;

@Stateless   //表示无状态会话 ,  一定要记得这两个注解
@Remote    //标识远程连接
public class HelloWorldBean implements HelloWorld {
	@Override
	public String sayHello(String name) {
		String result = name + "说:“你好,世界”";
		return result;
	}
}

 

写完这两个,把项目通过Exportd导出jar包。将其放到已经启动了的JBoss的 X(jboss的安装目录):\Program Files\jboss-5.1.0.GA-jdk6\jboss-5.1.0.GA\server\default\deploy 中,将会发现cmd中出现HelloWorld.jar的部署信息。


 

(4)最后写一个EJB客户端来检验一下:

 

 

package com.ejb.client;

import java.util.Properties;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.ejb.HelloWorld;

public class HelloWorldClient {
	public static void main(String[] args) {
		Properties prop = new Properties();
		/**
		 * "java.naming.factory.initial"是固定的,由JNDI规定
		 * "org.jnp.interface.naming.NamingContextFactory" 就是JBOSS的链接工厂
		 */
		prop.setProperty("java.naming.factory.initial", "org.jnp.interfaces.NamingContextFactory");
		/**
		 * 用于设定jboss链接的url
		 */
		prop.setProperty("java.naming.provider.url", "localhost:1099");
		
		try {
			InitialContext ctx = new InitialContext(prop);
			/**
			 * 调用远程接口
			 *  如果想要调用本地接口,则应该把remote改成local,具体规则见下图
			 */
			HelloWorld helloWorld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
			System.out.println(helloWorld.sayHello("Kevin"));
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}
 

 

 

具体规则见该图:

 

以上的客户端是通过硬性函数定义的,我们可以用另外一种方式来设置jndi的配置。

 

 

 

java.naming.factory.initial = org.jnp.interfaces.NamingContextFactory
java.naming.provider.url = localhost:1099

 

 

 

 

package com.ejb.client;

import javax.naming.InitialContext;
import javax.naming.NamingException;

import com.ejb.HelloWorld;

public class HelloWorldClient1 {
	public static void main(String[] args) {
		
		try {
			//在new这个工厂的时候,他会自动寻找jndi.properties
			InitialContext ctx = new InitialContext();
			HelloWorld helloWorld = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
			System.out.println(helloWorld.sayHello("Kevin"));
		} catch (NamingException e) {
			e.printStackTrace();
		}
	}
}

 

 

两者运行的结果都是:

 



 很好,恭喜大家,第一个EJB程序就是这么来的了。

  • 大小: 8.3 KB
  • 大小: 113.8 KB
  • 大小: 67.9 KB
  • 大小: 7.4 KB
分享到:
评论

相关推荐

    使用JBoss 4.2书写EJB3.0无状态会话Bean + JPA + MySql 5.0的Hello World Java EE应用

    环境:Window XP profession, JDK 1.6, MySQL 5.0, JBoss...该示例使用EJB 3.0的无状态会话Bean呼叫JPA持久层完成数据库的操作,推荐广大企业级Java程序员项目中使用。 注意:连接池的配置参见上一个资源readme.txt文档

    Eclipse+Jboss EJB技术 会话Bean

    广东工业大学Java EE Web编程技术课程实验,使用JBoss,实现EJB技术中的会话Bean,简单的Helloworld。

    Java EJB简单例子.rar

    Java EJB简单例子,这是HelloWorldBean的Home接口,它是EJB对象的生成库,无状态会话(将在下一个实例中具体讲解)Bean,这个接口是客户端与EJB对象相互作用的中间途径,通过Client触发调用Bean方法:  try {  //...

    java高手真经 高级编程卷 卷4(4卷)

    EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //05.消息驱动Bean...

    java高手真经 高级编程卷 光盘内容 卷1(4卷)

    EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //05.消息驱动Bean...

    java高手真经 高级编程卷 卷3(4卷)

    EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //05.消息驱动Bean...

    java高手真经 高级编程卷 卷2(4卷)

    EJBTest.zip //03.EJB入门样例——HelloWorld EJBTestJava.zip //03.Java测试客户端 EJBTestJSP.zip //03.JSP测试客户端 SessionBeanTest.zip //04.会话Bean开发样例 MDBTest.zip //05.消息驱动Bean...

    JBOSS使用指南

    2.2 Stateless Session Beans(无状态bean)开发 2.3 Stateless Session Bean与Stateful Session Bean的区三别 2.4 Session Bean的生命周期 3.消息驱动Bean (Message Driven Bean) 3.1 Queue消息的发送与接收(PTP...

    J2EE面试题

    e 当第一次访问这个程序时,弹出一个内容为"Is 1"的对话框,从第二次开始,每次访问这个程序都弹出内容为“Is 2”的对话框。 参考答案 a 4) 下面是一JSP页面的片断代码,请问页面输出结果是(). StringBuffer ...

    java源码包---java 源码 大量 实例

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    java源码包2

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    成百上千个Java 源码DEMO 4(1-4是独立压缩包)

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    成百上千个Java 源码DEMO 3(1-4是独立压缩包)

    Java EJB中有、无状态SessionBean的两个例子 两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用...

    java源码包3

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    jsp servlet 入门学习资料-新手一看就懂

    6.1 第一个JSP程序—HelloWorld! 6.2 注释的使用 6.3 脚本元素 6.3.1 声明 6.3.2 表达式 6.3.3 脚本代码 6.4 page指令 6.4.1 import 6.4.2 session 6.4.3 错误处理 6.5 包含其他文件 6.6 使用JavaBean ...

    java源码包4

    两个例子,无状态SessionBean可会话Bean必须实现SessionBean,获取系统属性,初始化JNDI,取得Home对象的引用,创建EJB对象,计算利息等;在有状态SessionBean中,用累加器,以对话状态存储起来,创建EJB对象,并将...

    从Java走向Java+EE+.rar

    第1章 Java EE的基本知识 1 1.1 Java EE的出现及其特点 1 1.2 Java EE的分层模型和平台组成 4 1.2.1 Java EE的分层模型 4 1.2.2 Java EE的结构变形 5 1.2.3 Java EE平台的组成 7 1.3 Java EE参与人员的...

    JAVA编程百例(照着例子更容易!)

    目录如下: ======================...实例92 无状态会话EJB 实例93 有状态会话EJB 实例94 容器管理实体EJB 实例95 BEAN自管理实体EJB 实例96 消息驱动BEAN 实例97 简单的STRUTS 实例98 信息表单提交 实例99 连接数据库

    jsp从入门到高级编程

    6.1 第一个JSP程序—HelloWorld! 6.2 注释的使用 6.3 脚本元素 6.3.1 声明 6.3.2 表达式 6.3.3 脚本代码 6.4 page指令 6.4.1 import 6.4.2 session 6.4.3 错误处理 6.5 包含其他文件 6.6 使用JavaBean ...

    java 面试题 总结

    但通常情况下,由于Java Bean是被容器所创建(如Tomcat)的,所以Java Bean应具有一个无参的构造器,另外,通常Java Bean还要实现Serializable接口用于实现Bean的持久性。Java Bean实际上相当于微软COM模型中的本地...

Global site tag (gtag.js) - Google Analytics