EJB 3 學習筆記:HelloWorld Stateless SessionBean
Posted on 2009-02-07 23:05 logicgate 閱讀(961) 評論(0) 編輯 收藏我的開發環境是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推薦