EJB3.1类路径问题

时间:2011-11-02 07:50:39

标签: glassfish-3 ejb-3.1

我有2个POJO,其中一个是EJB,另一个是帮助类。

//EJB Bean class
    @Singleton
    @LocalBean
    @Startup
    public class EJBBean{
     @PostConstruct
        public void init(){
            HelperClass helper = new HelperClass();
            helper.init();
        }
    } 
//Helper class
public class HelperClass{
      private static Log LOG = LogFactory.getLog("HelperClass");
      private static Long currentTime = new Date().getTime();

     public void init(){
       //Some statements that use Log and do other Initialization
     }
}

当我部署这个EJB jar时,我收到错误

java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory

我在类路径中有commons-logging-1.1.1.jar;另外,我已将其配置为使用Log4J。作为没有EJB元数据的独立应用程序,它可以正常工作。我错过了一些EJB配置吗?

BTW我对EJB很陌生。我使用GlassFish 3.1,Eclipse Helios作为IDE和EJB3.1。

1 个答案:

答案 0 :(得分:0)

这可能是因为您将commons-logging-1.1.1.jar放入了错误的目录中,或者因为您的服务器已经提供了包含日志记录类的服务器范围的库。

顺便说一下 - 我记得很多奇怪的'NoClassDefFoundError',因为混合了commons-logging,log4j和slf4j(特别是在不匹配的版本中)。