我确实遇到了与这里所解释的相同的问题:JBOSS7.1.3:@EJB工作而@Inject失败,这可能是相同的设置(Wildfly 8.0)。
尽管有一个带有producer的资源类,但我不能注入一个Logger实例。Neiter在控制器中,也不在EJB中。“问题1”如果我错了,请纠正我,我应该可以将它们注入@model bean和注有@stateless(EJB)的bean中,不是吗?
package com.doe.webapp.service.auxilliary.cdiproducer;
import javax.enterprise.context.Dependent;
import javax.enterprise.context.RequestScoped;
import javax.enterprise.inject.Produces;
import javax.enterprise.inject.spi.InjectionPoint;
import javax.faces.context.FacesContext;
import org.apache.log4j.Logger;
@Dependent
public class Resources {
@Produces
public Logger produceLog(InjectionPoint injectionPoint) {
return Logger.getLogger(injectionPoint.getMember().getDeclaringClass().getName());
}
@Produces
@RequestScoped
public FacesContext produceFacesContext() {
return FacesContext.getCurrentInstance();
}
}
下面是我的控制器的开始:
package com.doe.webapp.controller.security;
import java.io.IOException;
import java.util.Map;
import javax.annotation.PostConstruct;
import javax.enterprise.inject.Model;
import javax.enterprise.inject.Produces;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedProperty;
import javax.faces.context.FacesContext;
import javax.inject.Inject;
import javax.inject.Named;
import javax.servlet.ServletException;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.validation.constraints.Pattern;
import org.slf4j.Logger;
import com.doe.webapp.model.usermgmt.User;
import com.doe.webapp.service.security.LoginService;
@Model
public class LoginController {
private static final String ADMIN = "admin";
@Inject
private Logger log;
@Inject
private FacesContext facesContext;
@Inject
private LoginService loginService;
[...]
package com.doe.webapp.service.security;
import java.util.logging.Logger;
import javax.ejb.Stateless;
import javax.enterprise.event.Event;
import javax.inject.Inject;
import com.doe.webapp.data.UserRepository;
import com.doe.webapp.model.usermgmt.User;
@Stateless
public class LoginService {
@Inject
private transient Logger log;
@Inject
private UserRepository repository;
@Inject
private Event<User> userEvent;
public User login(User user) {
log.info("login " + user.getUsername());
User rUser = repository.findByCredentials(user.getUsername(), user.getPassword());
return rUser;
}
}
WELD-001408: Unsatisfied dependencies for type Logger with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private com.doe.webapp.controller.security.LoginController.log
at com.doe.webapp.controller.security.LoginController.log(LoginController.java:0)
另一个用于LoginService.java企业bean。
WELD-001408: Unsatisfied dependencies for type Logger with qualifiers @Default
at injection point [BackedAnnotatedField] @Inject private transient com.doe.webapp.service.security.LoginService.log
at com.doe.webapp.service.security.LoginService.log(LoginService.java:0)
“问题2”:我有什么不明白的地方,这次注射失败,出现WELLD-001408错误。
我现在没有WildFly/JBoss环境,但有一个可能的错误:
loginservice
导入并希望注入以下内容:
import java.util.logging.Logger;
...
@Inject
private transient Logger log;
LoginController
尝试使用SLF4J:
import org.slf4j.Logger;
...
@Inject
private Logger log;
import org.apache.log4j.Logger;
我在JBoss上部署我的Java应用程序时遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以这是我的问题: ... 在JBoss 7.1上部署时会出现以下错误: 10:05:34838错误[org.jboss.msc.service.fail](msc服务线程1-6)MSC00001:无法启动服务jboss。部署。单元“mdk-exchange-1.1.0.战争”。WeldSer
我有以下代码来管理两种存储库。这两个存储库类都继承了一个接口,以允许重新初始化它们的资源。 全球应用范围回购: 每个用户,会话范围的回购: 将此(不带)注入上下文时 但是,当向UserRepository类添加时,部署失败,例外情况如下: 添加CDI bean的名称,如 会导致相同的异常。唯一与一起工作的是使用var声明中的接口: 然而,我可能需要子类功能,所以使用并不是真正需要的(目前)。 问题
在JBoss上部署我的Java应用程序时,我遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以我的问题是: 10:05:34,838错误[org.jboss.MSC.service.fail](MSC服务线程1-6)MSC00001:无法启动服务jboss.deployment.unit。“MDK-Exchange-1.1.0.war”。WeldService:org.jboss
我在时出错。我不明白为什么。 我的应用服务器:GlassFish 4.1.2 当我创建我的类时,服务器给出一个错误 当我@Inject我创建的类时,服务器给出了一个错误 我想把它注入另一个类,比如: UserService实现java类 Maven pom xml文件
我有下面的代码来管理两种存储库。两个存储库类都继承了一个接口,以允许重新初始化它们的资源。 将此(不带)注入上下文时 它起作用了。但是,将添加到类时,部署失败,并出现一个异常: 添加CDI bean的名称,如 结果为相同的异常。与配合使用的唯一方法是使用var声明中的接口: 但是,我在这里可能需要子类功能,因此(目前)并不希望使用。 问: null
我在使用Arquillian测试JavaEE8应用程序时遇到了这个问题: WELD-001408:类型记录器与限定符@默认在注入点[BackedAnNotatedField]@注入私有academy.learnprogramming.services.TodoService的未满足依赖项。LOG 我对EntityManager也有同样的错误 以下是我的课程: TodoService。类(我必须测试