技术开发 频道

使用 NetBeans 开发 Java EE 5 "Hello World"

【IT168技术文档】 获取 NetBeans Java EE 5 预览版

访问下载页面 从 javaee5 分支获得一个 NetBeans 的日常构建版本:


解压缩并启动 IDE。

 

注册应用服务器

预览版使用开源的 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 应用程序。

可以从这里下载演示源代码。

0
相关文章