Struts2 EJB3 Plugin

我要开发同款
匿名用户2010年03月27日
43阅读
开发技术Java
所属分类Web应用开发、Web框架
授权协议Apache

作品详情

该plugin提供struts的Action及Interceptor对EJB组件及Resource的无侵入式依赖注入(DI)。

安装方法:将struts-ejb3-plugin.jar考入/WEB-INF/lib目录中。这时使用的为plugin的默认配置,该配置为cn/agrael/struts/plugin/ejb3/default-struts-ejb3-plugin.properties中的配置。配置信息如下:

#ENC的默认名ENCPath=java:comp/env/#应用服务器的具体实现类,该类是cn.agrael.struts.plugin.ejb3.ApplicationServer的实现类ejbContainer=cn.agrael.struts.plugin.ejb3.JbossApplicationServer#是否解析@Resource的标志true为解析,false为不解析isParseResource=false#是否解析@EJB的标志true为解析,false为不解析isParseEJB=true#ear的路径名,如果没有则为空字符串earFileBaseName=#为远程Bean时的JNDI路径remote=remote#为本地Bean时的JNDI路径local=local

如果要修改默认的配置,需要在classpath下建立为struts-ejb3-plugin.properties的资源文件覆盖默认的配置。

除了plugin本身的配置以外,还需要在classpath下创建名为jndi.properties的资源文件用做jndi配置,plugin中使用到的jndi查找依赖于该配置。

使用例子:

@Interceptors(Interceptor3.class)publicclassEjbTestAction1extendsActionSupport{    privatestaticfinallongserialVersionUID=4126146938063764047L;    @EJB    privateTestSessionBean1LocaltestSessionBean1Local;        @EJB(name="ejb/sessionBean1")    privateTestSessionBean1RemotesessionBean1;        privateTestSessionBean1Remotesession;        @EJB    publicvoidsetSession(TestSessionBean1Remotesession){        this.session=session;    }    @PostConstruct    @Interceptors({Interceptor2.class,Interceptor3.class})    publicvoidinit(){        //...    }        @Interceptors({Interceptor3.class,Interceptor1.class,Interceptor2.class})    publicStringexecute()throwsException{        //...        returnSUCCESS;    }}在Interceptor中使用方式和在Action中的使用方式相同。

需要注意的是,在Action的execute(或者自定义的名称)方法中同时使用struts2的Interceptor和@Interceptors时,@Interceptors会在Interceptor之前开始,在Interceptor之后结束。

目前的版本暂时不支持@PreDestroy。现阶段只有jboss应用服务器的实现,在以后的版本中会陆续增加如weblogic、glassfish等应用服务器的实现。如果现在需要jboss之外的实现,可实现cn.agrael.struts.plugin.ejb3.ApplicationServer接口,并使用struts-ejb3-plugin.properties修改ejbContainer为实现类。

声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论