2014-04-09 3 views
2

나는 다음과 같은 서비스가 있습니다CDI 로거 사출 예외

나는이 클래스에서 생산되는 로거 주입
@Singleton 
@Startup 
public class VideoFeedService { 

    @Inject 
    private Logger logger; 

    @PostConstruct 
    public void start() { 

     //do stuff 
    } 
} 

:

public class Resources { 

    @Produces 
    public Logger produceLog(InjectionPoint injectionPoint) { 
     return Logger.getLogger(injectionPoint.getMember().getDeclaringClass() 
       .getName()); 
    } 
} 

내가 배포에 다음과 같은 예외를 받고 있어요을 :

10:21:45,789 INFO [org.jboss.as.controller] (management-handler-thread - 2) JBAS014774: Service status report 
JBAS014775: New missing/unsatisfied dependencies: 
     service jboss.deployment.unit."videofeed.ws.war".WeldBootstrapService (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldTerminalListener".WeldInstantiator, service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".WeldInstantiator, service jboss.deployment.unit."videofeed.ws.war".CdiValidatorFactoryService, service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".WeldInstantiator, JBAS014799: ... and 8 more ] 
     service jboss.deployment.unit."videofeed.ws.war".WeldStartService (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".WeldInstantiator, service jboss.deployment.unit."videofeed.ws.war".CdiValidatorFactoryService, service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".WeldInstantiator, service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.WeldInterceptorBindingsService, JBAS014799: ... and 4 more ] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.CREATE (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.VIEW."org.proactive.rest.VideoFeedService".LOCAL (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.WeldInterceptorBindingsService (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.WeldInstantiator] 
     service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.ejb.non-functional-timerservice (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START] 
     service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".CREATE (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".CREATE (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".CREATE (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.PermittedTaglibsTLV".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.ScriptFreeTLV".START (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".deploymentCompleteService, service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.ScriptFreeTLV".WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."javax.servlet.jsp.jstl.tlv.ScriptFreeTLV".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".CREATE (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".WeldInstantiator (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".START] 
     service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldTerminalListener".START (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws", service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".ee.ComponentRegistry (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
     service jboss.deployment.unit."videofeed.ws.war".jndiDependencyService (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".component."com.sun.faces.config.ConfigureListener".START, service jboss.deployment.unit."videofeed.ws.war".component."org.jboss.weld.servlet.WeldInitialListener".START, service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START, service jboss.deployment.unit."videofeed.ws.war".component."javax.faces.webapp.FacetTag".START, JBAS014799: ... and 2 more ] 
     service jboss.deployment.unit."videofeed.ws.war".moduleDeploymentRuntimeInformation (missing) dependents: [service jboss.deployment.unit."videofeed.ws.war".moduleDeploymentRuntimeInformationStart, service jboss.deployment.unit."videofeed.ws.war".component.VideoFeedService.START] 
     service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws"] 
     service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".codec (missing) dependents: [service jboss.undertow.deployment.default-server.default-host."/videofeed.ws".UndertowDeploymentInfoService] 
JBAS014777: Services which failed to start:  service jboss.deployment.unit."videofeed.ws.war".WeldStartService 

[2014-04-09 10:21:45,854] Artifact videofeed.ws:war: Error during artifact deployment. See server log for details. 
[2014-04-09 10:21:45,855] Artifact videofeed.ws:war: java.lang.Exception: {"JBAS014671: Failed services" => {"jboss.deployment.unit.\"videofeed.ws.war\".WeldStartService" => "org.jboss.msc.service.StartException in service jboss.deployment.unit.\"videofeed.ws.war\".WeldStartService: Failed to start service 
    Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: Unsatisfied dependencies for type Logger with qualifiers @Default 
    at injection point [BackedAnnotatedField] @Inject private org.proactive.rest.VideoFeedService.logger 
    at org.proactive.rest.VideoFeedService.logger(VideoFeedService.java:0) 
WELD-001475: The following beans match by type, but none have matching qualifiers: 
    - Producer Method [Logger] with qualifiers [@BatchProperty @Any] declared as [[UnbackedAnnotatedMethod] @Produces @BatchProperty public org.jberet.creation.BatchBeanProducer.getLogger(InjectionPoint)] 
"}} 

Java 8, Java EE 7을 사용 중이며 Wildfly Server에 배포 중입니다. 또한 JBoss 빠른 시작에서 Kitchensink 예제에 사용 된 표준 pom.xml을 사용합니다.이 예제는 기본적으로 Logger에서 동일한 작업을 수행합니다. 어떤 생각을 잘못하고있는거야?

+0

'자원 '이라고 표시하셨습니까? 용접에 의해 발견 될 수 있어야하므로 최소한 ManagedBean으로 표시하십시오. –

답변

5

beans.xml에 대한 정보를 제공하지 않았습니다. Java EE 7 (CDI 1.1)에서는 값을 입력 할 필요가 없지만 (CDI는 기본적으로 활성화되어 있음) bean defining annotations의 빈 만 발견됩니다. Resources 클래스에는 주석을 정의하는 bean (주석을 작성하는 명시 적 범위 주석이 없음)이 없으므로 제작자가 발견되지 않을 수 있습니다.

Resources 클래스에 @Dependent을 넣어 두는 것이 좋습니다. EJB는 항상 CDI 빈으로 검색되므로 VideoFeedService에 범위를 추가 할 필요가 없습니다.

+0

CDI 1.1을 사용하면서 beans.xml 파일이 없었습니다. @Dependent는 잘 작동했다. – ChrisGeo