本文将介绍EJB模型在Java EE 6新的WebService的应用。Java EE 6最重要的一个新功能便是更好的使用EJB模型。EJB模型规定把企业bean组件一定要装在EJB-jar文件模块中。而Java EE Web应用程序通常使用的企业Bean,这些组件的必要条件必须是能承受很多负载。
因为EJB 3.1的企业bean类计算繁重的问题在EJB-jar文件打包受到限制,所以必须解决这种打包受到复杂的限制。于是你只能把EJB模型放在WEB-INF/classes目录下,或者把EJB模型文件压缩成jar文件放在WEB-INF/lib目录下,这样,你才能你直接把EJB放在文件里,使用相同的适用于Web应用程序类组件规则。同时EJB模型的部署描述符也是可选的,如果你需要它,你可以把EJB部署描述符打包成一个WEB-INF/EJB-jar.xml文件。
因此,我们把上述想法EJB在webservices上表现出来。下文就来讲讲如何简单地使用NetBeans 6.9和Glassfish 3.0.1通过创建和部署EJB模型。
首先,让我们使用NetBeans 6.9创建一个Webservice。
NetBeans 6.9创建一个Webservice
接下来,我们指定项目位置。
指定项目位置
选择GlassFish 3.0.1与NetBeans 6.9是捆绑在一起的服务器。注意:我使用JavaEE 6的版本。
选择GlassFish 3.0.1与NetBeans 6.9
现在我们创建一个WebService的项目叫:Weather,目标项将显示为温度。
创建一个WebService的项目:Weather
点击Finish就完成了。
这里是到WebService的代码。注意:我已经添加一个WebMethod。我还指定了Interceptor的注释。EJB 3.0的Interceptor提供了良好的方法调用控制开发。在这个例子中我们打印了从该Interceptor被调用的方法。
这里是SimpleInterceptor.java代码。
SimpleInterceptor.java代码
接下来,我们清理并生成项目.
生成项目
然后点击部署。
从这里您可以浏览的WSDL:http://localhost:8080/WeatherService/Weather?wsdl
浏览的WSDL
注意:在WebService上EJB模型只是一个简单便捷的组件。如果是在一个一个EJB模型的EJB-jar压缩文件部署相同,在该端点部署网址也是一样的。在Glassfish 3.0有一个bug的EJB符被当作webapps的对待。所以在这里使用的都是GlassFish 3.0.1或者GlassFish 3.1。
你看到部署的EJB模型使用NetBeans非常容易建立的。你也可以使用测试仪测试应用程序的webservice在http://localhost:8080/WeatherService/Weather?tester。这便是51CTO为各位编译的Java EE 6的EJB模型案例。