2015-04-19 1 views
0

Мне интересно, где проблема с введением org.slf4j.Logger в службу REST в веб-приложении с использованием Jboss 7.1. Я также добавил beans.xml.Невозможное внедрение CDI в SLF4 Logger через @Prodeuces

Это мой класс продюсер:

import javax.enterprise.inject.spi.InjectionPoint; 
import javax.ws.rs.Produces; 
import org.slf4j.Logger; 
import org.slf4j.LoggerFactory; 

public class LoggerProducer { 

@Produces 
public Logger producer(InjectionPoint ip) { 
    return LoggerFactory.getLogger(ip.getMember().getDeclaringClass().getName()); 
    } 
} 

И как я пытаюсь использовать Logger:

import javax.inject.Inject; 
import javax.ws.rs.Path; 
import org.jboss.resteasy.spi.validation.ValidateRequest; 
import org.slf4j.Logger; 

@ValidateRequest 
@RolesAllowed("admin") 
@Path("domains") 
public class DomainRestService { 

    @Inject 
    private DomainBean domainService; 
    @Inject 
    private Logger log; 

Но когда я пытаюсь развернуть мое приложение, развертывание терпит неудачу за исключением следующего:

Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [Logger] with qualifiers [@Default] at injection point [[field] @Inject private com.gbs.acc.service.rest.DomainRestService.log] 

Я видел много примеров для инъекции CDI Logger, но я не могу понять, почему esnt работать?

ответ

3

Вы должны использовать javax.enterprise.inject.Produces вместо javax.ws.rs.Produces аннотировать метод producer производителя в LoggerProducer классе.

+0

:)) Ярлык Netbeans добавил неправильный импорт для меня. Большое спасибо. –

Смежные вопросы