我有一个EJB项目,我正在通过eclipse部署到Glassfish,以下代码行导致部署中断:
Logger L = LoggerFactory.getLogger(IPersonDao.class);
如果我删除此行,它可以正常工作。我可以保留slf4j import语句,如果我注释掉这一行,没问题。如果我启用它,Glassfish会出错:
java.lang.RuntimeException:无法加载EJB模块。 DeploymentContext不包含任何EJB。 ...
为什么呢?这没有任何意义,如果我使用log4j Logger或slf4j Logger,则部署会中断。注释掉那条线,它可以工作。
是什么给出了?
这是豆子:
import javax.ejb.Stateless;
import javax.ejb.LocalBean;
import javax.ejb.Remote;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author martin
*/
@Stateless(name="HelloBean")
@LocalBean
@Remote
public class HelloBean {
//private static Logger L = LoggerFactory.getLogger(HelloBean.class);
public HelloBean(){
//L.info("HelloBean created");
}
public String sayHello() {
return "Hello";
}
}
它可以工作,但是如果我取消注释日志记录行就会失败。
以下是deps:
org.slf4j
slf4j-api 1.7.12ch.qos.logback
logback-classic 1.0.13