本教程旨在说明如何使用 NetBeans 和 GlassFish 应用程序服务器来创建和测试一个简单的“Hello world” Java EE 5 应用程序,它使用了 EJB 3.0 和 JSF 的依存关系注入技术。
注意:GlassFish 已经在 Web 层支持 Servlet 2.5 和 JSF 1.2 关于 Java EE 5 的依存关系注入申明。如果您打算使用 JBoss,您可以测试这个独立的 EJB 模块,然后使用 J2SE 客户端或 JNDI 来查询调用 EJB。
下载服务器,安装好后,在 NetBeans 中使用菜单 Tools 〉 Server Manager 来注册该服务器。使用 Sun Java Systems Application Server 作为服务器类型来注册 GlassFish:
IDE 将创建一个 Enterprise Application 项目、Web 项目和 EJB 项目。Enterprise Application 项目和 Web 项目包含了 Java EE 5 部署描述符。EJB 模块没有任何部署描述符 - 在 EJB 3.0 中不需要描述符,所有的元数据都写在声明中。
Web 应用程序项目必须在其类路径中包含 EJB 项目,以便调用 EJB。在 Web 模块项目中右键单击 Libraries,选择 Add Project,然后浏览 EJB 模块工程。
@Stateless
声明。
将一个业务方法添加到界面中:
package hi; /** * This is the business interface for HelloWorld enterprise bean. */ public interface HelloWorldRemote { public String sayHi (); }并在 bean 类中实现这个接口:
package hi; import javax.ejb.*; /** * This is the bean class for the HelloWorldBean enterprise bean. * Created 3.11.2005 13:14:42 * @author pbuzek */ @Stateless() public class HelloWorldBean implements hi.HelloWorldRemote { public String sayHi (){ return "Hello world!"; } }
首先,转到 Web 模块项目属性,并添加 JSF 支持:
这将创建文件 faces-config.xml
,将所有库添加到项目的类路径中,注册相关条目到 web.xml
中,并创建一个示例 JSF 页面 welcomeJSF.jsp
。
现在,使用 JSF Managed Bean 模板在 Web 模块中创建一个 managed bean:
然后编写调用 EJB 的代码。在 Java EE 5 中,您 不必编写任何 JNDI 查找代码。仅使用 @EJB
声明来标识一个字段,且服务器会在创建 managed bean 后注入一个 EJB 实例:
package beans; import hi.HelloWorldRemote; import javax.ejb.EJB; public class Managed { @EJB() HelloWorldRemote hello; public String getGreeting () { return hello.sayHi(); } public Managed() { } }最后一步是从 JSF 中调用 managed bean:
<body> <f:view> <h1><h:outputText value="Java Server Faces" /></h1> <h:outputText value="#{Managed.greeting}"/> </f:view> </body>运行 Hello World 应用程序。