扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:佚名 来源:ZDNet China 2007年11月18日
关键字:
在本页阅读全文(共3页)
14. @SessionEJBControl.JNDIContextEnv( |
在第14~16行中我们使用@SessionEJBControl.JNDIContextEnv的contextFactory属性和providerURL来设置目标服务器的JNDI上下文环境工厂和目标服务器的访问地址信息。
17. public interface HelloWorldSessionEJBControl |
在第17~19行中,我们声明该控件继承了EJB控件SessionEJBControl接口和目标EJB的Home、Remote接口。
前面的两节内容中,我们通过创建访问SessionBean控件的例子,简单的说明了如何通过继承EJB控件快速访问EJB资源的步骤和方法。通过控件访问Entity Bean的步骤和访问SessionBean的步骤基本一致,只不过继承对象变成了EntityEJBControl,而不再是SessionEJBControl,请读者参考上面的步骤自己完成。
使用注释定制EJB控件
J2EE架构下,客户端访问EJB多采用jnp协议访问EJB容器的JNDI树,通过查找相应的JNDI对象获取EJB访问实例。EJB控件提供了注释EJBHome和JNDIContextEnv,其中JNDIContextEnv用于指定访问目标EJB容器上下文环境所需要的参数,EJBHome用于指定如何在上下文中获取EJB的Home接口。
下面的内容将详细的讲述如何使用EJBHome和JNDIContextEnv两个注释来定制EJB控件。
JNDIContextEnv
JNDIContextEnv注释是类级别的注释元素,用于设置EJB继承类访问EJB时所需要使用的JNDI上下文工厂类名、目标服务器的相关必要信息(访问协议、ip地址、端口等)、访问时需要提供的访问用户名和密码。JNDIContextEnv包括contextFactory、providerURL、principal、credentials属性。
contextFactory
字符串类型的属性,设置访问EJB JNDI上下文环境需要使用工厂类,比如访问JBoss应用服务器上的EJB资源时可以设置contextFactory属性为”org.jnp.interfaces.NamingContextFactory”。
providerURL
字符串类型的属性,设置目标EJB容器的相关属性,包括访问JNDI上下文环境使用的协议、目标服务器IP地址、服务端口等,比如访问JBoss容器中ejb时,providerURL可以写成”jnp://localhost:1099”。
principal
字符串类型的属性,设置访问EJB时需要提供的安全用户名。
credentials
字符串类型的属性,设置访问EJB时需要提供的安全密码。
EJBHome
EJBHome是类级别的注释元素,用于设定获取EJB Home接口的实例,支持的属性包括了jndiName和ejbLink,你可以选择性的使用其中任何一个。
jndiName
String类型,EJB在EJB容器中发布时使用的jndi名称,你也可以使用jndi协议形式的url来设置这个参数。比如你可以使用jndi/helloworld来设置这个参数,你也可以使用jndi://localhost:7001/jndi/helloworld这样的url来设置这个参数。
ejbLink
String类型,用于设置与包含的EJB jar文件应用路径相关的目标EJB名,命名的语法是BeanName#EJBJAR,比如HelloWorldHome@HelloWorldEjb.jar。
结束语
EJB是J2EE框架中最重要的部分,也是企业应用中最常用的技术之一,然而EJB的客户端编写对于开发者而言不是一件轻松的事情。控件架构中的EJB控件大大的简化了EJB资源的复杂性、难度,开发者只需要通过简单的继承org.apache.beehive.controls.system.ejb.SessionEJBControl或者org.apache.beehive.controls.system.ejb.EntityEJBControl,然后通过提供相应的注释就可以完成EJB资源的访问。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者