我的开发环境是eclipse 3.4 + glassfish-v2
1。下载安装glassfish-v2,具体步骤就不说了,此处省略500字。。。
2。运行asadmin start-appserv启动应用服务器。
3。登陆admin console, http://localhost:4848
4。创建eclipse project
从%glassfish_home%/lib中找到javaee.jar和appserv-rt.jar这两个文件,加入到project Libraries中。
5。编写HelloWorld EJB
IHelloWorld.java (remote interface):
package ejb;
import javax.ejb.Remote;
@Remote
public interface IHelloWorld
{
public String sayHello();
}
HelloWorld.java (stateless session bean)
package ejb;
import javax.ejb.Stateless;
@Stateless(name="HelloWorldBean", mappedName="ejb/HelloWorldBeanJNDI")
public class HelloWorld implements IHelloWorld
{
public String sayHello()
{
return ("Hello World! This is my first EJB3 Stateless SessionBean!");
}
}
mappedName定义了HelloWorld的jndi name,稍后客户端测试程序需要用这个名字来做lookup。
6。编写ant build.xml
<?xml version="1.0"?> <project name="helloWorld" default="deploy" basedir="."> <property name="build.dir" value="${basedir}/class"/> <property name="glassfish.home" value="F:/glassfish-v2ur2"/> <property name="deploy.dir" value="${glassfish.home}/domains/domain1/autodeploy"/> <target name="jar"> <jar destfile="helloWorld.jar"> <fileset dir="${build.dir}"> <include name="ejb/*.class"/> </fileset> </jar> </target> <target name="deploy" depends="jar"> <copy file="${basedir}/helloWorld.jar" todir="${deploy.dir}"/> </target> </project>
7。打包,部署。
运行build.xml,把程序打包成helloWorld.jar并拷贝到glassfish的自动部署目录。如果部署成功,在glassfish的admin console中,Applications->EJB Modules下面可以找到我们的HelloWorldBean。如果程序中没有设置mappedName,去Application Server->General->JNDI Browsing也可以找到对应的jndi name。
8。编写客户端测试程序。
package test;
import javax.naming.InitialContext;
import ejb.IHelloWorld;
public class Test
{
public void runTest() throws Exception
{
InitialContext ctx = new InitialContext();
IHelloWorld bean = (IHelloWorld)ctx.lookup("ejb/HelloWorldBeanJNDI");
System.out.println(bean.sayHello());
}
public static void main(String[] args)
{
try
{
Test t = new Test();
t.runTest();
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
运行测试程序,成功打印出: Hello World! This is my first EJB3 Stateless SessionBean!
感觉ejb3比ejb2少了一堆繁琐的文件和xml配置,而且支持pojo风格的编程,开发效率和可移植性都比以前要好得多。