你可以在库中打包一个ejb拦截器吗?

时间:2011-02-09 13:33:05

标签: ejb-3.0 java-ee-6 interceptor

如果是这样,你怎么做?

我有一个ejb @javax.interceptor.AroundInvoke拦截器,我喜欢进入一个库以供重用。我将代码移动到一个库中,修复了maven中的依赖项,现在所有编译都很好。仅在部署时,我收到以下错误消息:

09.02.2011 14:19:48 com.sun.logging.LogDomains$1 log
SCHWERWIEGEND: Exception while invoking class org.glassfish.ejb.startup.EjbApplication start method
java.lang.RuntimeException: java.lang.ClassNotFoundException: 

1 个答案:

答案 0 :(得分:2)

来自 JSR 318:Enterprise JavaBeans,3.1版 - EJB核心合同和要求

  

20.3包装要求

     

ejb-jar文件或.war文件必须   包含,包含或 by   参考,每个的类文件   enterprise bean如下:

     
      
  • 企业bean类。
  •   
  • 企业bean业务接口,Web服务端点   接口,家庭和组件   接口。
  •   
  • 拦截器类。
  •   
  • 如果bean是实体bean,则为主键类。
  •   
     

我们说.jar文件包含第二个文件“by reference”if   第二个文件在Class-Path中命名   属性在Manifest文件中   引用.jar文件或包含   (通过包含或通过引用)   在另一个命名的.jar文件中   中的Class-Path属性   引用.jar的清单文件   文件。

所以我说是的,你可以将拦截器类封装在库.jar文件中。

检查:1)该库实际上已打包并使用ejb-jar文件进行部署; 2)如上所述,库文件.jar在Manifest文件中被引用。