BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

我的开发环境是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风格的编程,开发效率和可移植性都比以前要好得多。



已有 0 人发表留言,猛击->>这里<<-参与讨论


JavaEye推荐