因为第一次接触EJB3.0由于第一个简单的SessionBean案例郁闷了很久,在网上也查找了一些相关的案例但是有一些一些案例讲的不够清楚,弄了很久都弄不出来第一个简单的案例,有一些例子是用JbossIDE插件做的,所以自己也安装了相关的插件,因为有一些插件下载不了总是出现不了JBossIDE界面。以前以为EJB只有一些插件才能运行的最近发现Eclipse + JBoss就可以实现EJB运用的发布。
以下是所用到开发环境做第一个简单的EJB3.0例子:
MyEclipse 5.1.1 GA
jboss-4.2.3.GA-jdk6
jdk 6.x
第一创建一个Java Project
第二把Jboss目录client所有的jar文件导入工程中
第三创建一个接口HelloWorl.java
第四创建一个远程实现类HelloWorldBean.java
package com.ejb;
import javax.ejb.Remote;
import javax.ejb.Stateless;
@Stateless
@Remote(HelloWorld.class)
public class HelloWorldBean implements HelloWorld {
public String say(String name) {
return name + "说:你好!";
}
}
第五导出jar文件,一般Jboss默认启动都是default目录下面所以导出的文件必须放在server/default/deploy目录下面,我这里是启动all 下面的starup.bat所以我把导出的jar文件放在server/all/deploy目录
把jar文件发布到服务器时候将提示发布信息,如果后台没有报出错误信息说明发布的工程没有出现错误将会提示以下信息
第六创建一个EJBClient客户工程
然后把客户工程关联EJB工程这样客户端就可以调用到服务器端接口类,就不用把EJB接口打包添加到客户端工程中编写一个Test.java类用于测试EJB
这只是用于本地测试而已,真是的工程可能会存放在不同的服务器中这就是所谓的分布式,要想获取到不同服务器上面的Bean对象必须把接口打包成jar文件提供给用户
测试类代码如下,会根据jndi找到服务器中的Bean对象,并实现其操作
package com.ejb;
import java.util.Properties;
import javax.naming.InitialContext;
import javax.naming.NamingException;
public class Test {
/**
* @param args
*/
public static void main(String[] args) {
Properties pops = new Properties();
pops.setProperty("java.naming.factory.initial","org.jnp.interfaces.NamingContextFactory");
pops.setProperty("java.naming.provider.url","localhost:1099");
try {
InitialContext ctx = new InitialContext(pops);
HelloWorld h = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(h.say("徐闻人 "));
} catch (NamingException e) {
e.printStackTrace();
}
}
}
其实在测试工程根目录下面编写一个jndi.properties
java.naming.factory.initial=org.jnp.interfaces.NamingContextFactory
java.naming.provider.url=localhost:1099
测试代码就编写如下
try {
InitialContext ctx = new InitialContext();
HelloWorld h = (HelloWorld) ctx.lookup("HelloWorldBean/remote");
System.out.println(h.say("徐闻人 "));
} catch (NamingException e) {
e.printStackTrace();
}
}
两种方式都可以JBoss服务器会自动在的找到工程根目录下面的jndi.properties文件的
最终控制平台打印出结果为
徐闻人 说:你好!
EJB3.0 SessionBean案例
猜你喜欢
转载自chenshengzun.iteye.com/blog/1164542
今日推荐
周排行