本教程旨在说明如何使用 NetBeans 和 GlassFish 应用程序服务器来创建和测试一个简单的“Hello world” Java EE 5 应用程序,它使用了 EJB 3.0 和 JSF 的依存关系注入技术。
获取 NetBeans Java EE 5 预览版
访问 下载页面 从 javaee5 分支获得一个 NetBeans 的日常构建版本:
|
注册应用服务器
预览版使用 开源的 Java EE 5 应用服务器 GlassFish 和 JBoss 服务器的最新版本来进行测试。注意: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:
|
创建一个 Java EE 5 应用程序
创建一个新 Enterprise Application 项目,选择服务器类型为 Java EE 5 server,J2EE 版本为 Java EE 5。
|
IDE 将创建一个 Enterprise Application 项目、Web 项目和 EJB 项目。Enterprise Application 项目和 Web 项目包含了 Java EE 5 部署描述符。EJB 模块没有任何部署描述符 - 在 EJB 3.0 中不需要描述符,所有的元数据都写在声明中。
Web 应用程序项目必须在其类路径中包含 EJB 项目,以便调用 EJB。在 Web 模块项目中右键单击 Libraries,选择 Add Project,然后浏览 EJB 模块工程。
|
创建一个 EJB 3.0 Bean
在 EJB 模块项目的弹出菜单中选择 New > Session Bean。这将创建一个已声明 EJB 和一个远程或者本地业务接口。请注意,bean 类和普通 Java 类唯一不同之处的是多了@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 应用程序中调用 EJB
我们现在从 JSF 调用 EJB,查看依存关系注入如何在 JSF Managed Bean 中实现。首先,转到 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 应用程序。
本文介绍如何使用NetBeans和GlassFish创建JavaEE5应用,包括EJB3.0 Bean及JSF Managed Bean的开发流程。
109

被折叠的 条评论
为什么被折叠?



