Question

I have the following Service:

@Singleton
@Startup
public class VideoFeedService {

    @Inject
    private Logger logger;

    @PostConstruct
    public void start() {

        //do stuff
    }
}

Where I inject the logger that is produces from this class:

public class Resources {

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

I'm getting the following exception on deploy:

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)]
"}}

I'm using Java 8, Java EE 7 and deploying it on a Wildfly Server. I'm also using the standard pom.xml used in the Kitchensink example from JBoss quick starts which basically does the same thing with Logger. Any Idea what i'm doing wrong?

Was it helpful?

Solution

You didn't gave information about your beans.xml file. In Java EE 7 (CDI 1.1) you don't have to put one (CDI is activated by default) but then, only beans having bean defining annotations are discovered. Your Resources class doesn't have a bean defining annotation (no explicit scope annotation to make short) so your producer is probably not discovered.

I suggest you put a @Dependent on your Resources class, EJB are always discovered as CDI bean so no need to add scope to your VideoFeedService.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top