这个教程旨在演示如何使用netbeans和glassfish应用服务器来创建并测试一个简单的“hello world”java ee 5应用程序,它使用了ejb3.0和jsf的依赖注入。
获取netbeans java ee 5 preview版本
可以从这里获得一个每日构建的netbeans java ee 5版本:

解压缩并启动ide。
注册应用服务器
这个预览版本使用最新的glassfish开放源代码的java ee 5应用服务器和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工程,设置服务器为glassfish,j2ee版本为java ee 5.0:
ide将创建一个enterprise application工程,web工程和ejb工程。enterprise application工程和web工程包含了java ee 5部署描述符。ejb模块并没有任何部署描述符――在ejb 3.0中,不需要描述符,所有的元数据都将在写在申明的时候。
web应用工程必须在其classpath中包含ejb工程,以便调用ejb。在web模块中右键点击libraries,选择添加project,然后加入ejb模块的项目:

创建一个ejb 3.0 bean
在ejb模块工程中,右键弹出快捷菜单,选择new > session bean,就创建了一个申明式的ejb和一个远程或者本地业务接口。注意,和普通的java类唯一不同的是,bean多了一个@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模块工程属性框,在frameworks中选择支持jsf:
这将创建一个faces-config.xml文件,添加相关的库到工程的classpath中,注册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”应用程序。
可以从这里下载源示例代码。
闽公网安备 35060202000074号