[ 
https://issues.apache.org/jira/browse/DELTASPIKE-686?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Gerhard Petracek closed DELTASPIKE-686.
---------------------------------------


> WELD-001408: Unsatisfied dependencies error message when injecting type-safe 
> messages @MessageBundle instance
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: DELTASPIKE-686
>                 URL: https://issues.apache.org/jira/browse/DELTASPIKE-686
>             Project: DeltaSpike
>          Issue Type: Bug
>          Components: Core
>    Affects Versions: 1.0.1
>         Environment: Windows 7, Java 1.7.0_60 Java(TM) SE Runtime Environment 
> (build 1.7.0_60-b19) Java HotSpot(TM) 64-Bit Server VM (build 24.60-b09, 
> mixed mode), Wildfly 8.1.0 Final.
>            Reporter: Juan Pablo Angamarca
>            Assignee: Rafael Benevides
>            Priority: Minor
>         Attachments: demo.ear, project-ear-ear.ear
>
>
> Application server: Wildfly 8.1.0
> Deployment type: EAR, subdeployments not isolated, DeltaSpike jars in 
> $EAR_ROOT/lib: deltaspike-core-api-1.0.1.jar, deltaspike-core-impl-1.0.1.jar.
> I tried to use the typesafe messages feature of DS as described in the Core 
> Module docs page. When trying to inject a @MessageBundle, the IDE (Eclipse 
> Luna, JBoss Tools 4.2.0.Beta3) shows a warning: "No bean is eligible for 
> injection to the injection point [JSR-299 §5.2.1]". When trying to deploy the 
> app, deployment fails with a WELD-001408 error.
> Full deployment log:
> 18:11:11,605 INFO  [deployment] (AbstractDeploymentUnitService.java:69)  
> JBAS015876: Starting deployment of "demo.ear" (runtime-name: "demo.ear")
> 18:11:11,761 INFO  [deployment] (AbstractDeploymentUnitService.java:71)  
> JBAS015973: Starting subdeployment (runtime-name: "demo-ejb.jar")
> 18:11:11,761 INFO  [deployment] (AbstractDeploymentUnitService.java:71)  
> JBAS015973: Starting subdeployment (runtime-name: "demo-war.war")
> 18:11:12,142 INFO  [deployer] (BeanArchiveProcessor.java:102)  JBAS016002: 
> Processing weld deployment demo.ear
> 18:11:12,212 INFO  [Version] (Version.java:27)  HV000001: Hibernate Validator 
> 5.1.0.Final
> 18:11:12,290 INFO  [deployer] (BeanArchiveProcessor.java:102)  JBAS016002: 
> Processing weld deployment demo-war.war
> 18:11:12,290 INFO  [deployer] (BeanArchiveProcessor.java:102)  JBAS016002: 
> Processing weld deployment demo-ejb.jar
> 18:11:12,298 INFO  [EjbJndiBindingsDeploymentUnitProcessor] 
> (EjbJndiBindingsDeploymentUnitProcessor.java:183)  JNDI bindings for session 
> bean named DummyEjb in deployment unit subdeployment "demo-ejb.jar" of 
> deployment "demo.ear" are as follows:
>       java:global/demo/demo-ejb/DummyEjb!demo.admin.DummyEjb
>       java:app/demo-ejb/DummyEjb!demo.admin.DummyEjb
>       java:module/DummyEjb!demo.admin.DummyEjb
>       java:global/demo/demo-ejb/DummyEjb
>       java:app/demo-ejb/DummyEjb
>       java:module/DummyEjb
> 18:11:12,307 INFO  [deployer] (WeldDeploymentProcessor.java:131)  JBAS016005: 
> Starting Services for CDI deployment: demo.ear
> 18:11:12,329 INFO  [Version] (WeldStartup.java:146)  WELD-000900: 2.1.2 
> (Final)
> 18:11:12,340 INFO  [deployer] (WeldBootstrapService.java:103)  JBAS016008: 
> Starting weld service for deployment demo.ear
> 18:11:12,507 WARN  [Event] (ExtensionObserverMethodImpl.java:83)  
> WELD-000411: Observer method [BackedAnnotatedMethod] protected 
> org.apache.deltaspike.core.impl.exclude.extension.ExcludeExtension.vetoBeans(@Observes
>  ProcessAnnotatedType<Object>, BeanManager) receives events for all annotated 
> types. Consider restricting events using @WithAnnotations or a generic type 
> with bounds.
> 18:11:12,537 WARN  [Event] (ExtensionObserverMethodImpl.java:83)  
> WELD-000411: Observer method [BackedAnnotatedMethod] protected 
> org.apache.deltaspike.core.impl.message.MessageBundleExtension.detectInterfaces(@Observes
>  ProcessAnnotatedType<Object>) receives events for all annotated types. 
> Consider restricting events using @WithAnnotations or a generic type with 
> bounds.
> 18:11:13,236 ERROR [fail] (ServiceControllerImpl.java:1955)  MSC000001: 
> Failed to start service jboss.deployment.unit."demo.ear".WeldStartService: 
> org.jboss.msc.service.StartException in service 
> jboss.deployment.unit."demo.ear".WeldStartService: Failed to start service
>       at 
> org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
>  [jboss-msc-1.2.2.Final.jar:1.2.2.Final]
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
>  [rt.jar:1.7.0_60]
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
>  [rt.jar:1.7.0_60]
>       at java.lang.Thread.run(Thread.java:745) [rt.jar:1.7.0_60]
> Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: 
> Unsatisfied dependencies for type Messages with qualifiers @Default
>   at injection point [BackedAnnotatedField] @Inject private 
> demo.admin.ApplicationAuthenticator.messages
>   at 
> demo.admin.ApplicationAuthenticator.messages(ApplicationAuthenticator.java:0)
>       at 
> org.jboss.weld.bootstrap.Validator.validateInjectionPointForDeploymentProblems(Validator.java:368)
>       at 
> org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:289)
>       at 
> org.jboss.weld.bootstrap.Validator.validateGeneralBean(Validator.java:135)
>       at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:166)
>       at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:514)
>       at 
> org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:68)
>       at 
> org.jboss.weld.bootstrap.ConcurrentValidator$1.doWork(ConcurrentValidator.java:66)
>       at 
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:60)
>       at 
> org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:53)
>       at java.util.concurrent.FutureTask.run(FutureTask.java:262) 
> [rt.jar:1.7.0_60]
>       ... 3 more
> 18:11:13,240 ERROR [management-operation] (AbstractOperationContext.java:609) 
>  JBAS014613: Operation ("deploy") failed - address: ([("deployment" => 
> "demo.ear")]) - failure description: {"JBAS014671: Failed services" => 
> {"jboss.deployment.unit.\"demo.ear\".WeldStartService" => 
> "org.jboss.msc.service.StartException in service 
> jboss.deployment.unit.\"demo.ear\".WeldStartService: Failed to start service
>     Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408: 
> Unsatisfied dependencies for type Messages with qualifiers @Default
>   at injection point [BackedAnnotatedField] @Inject private 
> demo.admin.ApplicationAuthenticator.messages
>   at 
> demo.admin.ApplicationAuthenticator.messages(ApplicationAuthenticator.java:0)
> "}}
> 18:11:13,346 INFO  [server] (DeploymentHandlerUtil.java:135)  JBAS018559: 
> Deployed "demo.ear" (runtime-name : "demo.ear")
> 18:11:13,346 INFO  [controller] (ContainerStateMonitor.java:69)  JBAS014774: 
> Service status report
> JBAS014777:   Services which failed to start:      service 
> jboss.deployment.unit."demo.ear".WeldStartService: 
> org.jboss.msc.service.StartException in service 
> jboss.deployment.unit."demo.ear".WeldStartService: Failed to start service
> Code used:
> Client bean:
> package demo.admin;
> import java.io.Serializable;
> import javax.enterprise.context.Dependent;
> import javax.enterprise.inject.Default;
> import javax.inject.Inject;
> import demo.i18n.Messages;
> @Default
> @Dependent
> public class ApplicationAuthenticator implements Serializable {
>       
>       // Elided...
>       
>       /**
>        * 
>        */
>       private static final long serialVersionUID = 1L;
>       
>       @Inject // IDE warns: "No bean is eligible for injection to the 
> injection point [JSR-299 §5.2.1]"
>       private Messages messages; 
>       
>       public String auth(final String login, final String password) {
>       
>               String msg = this.messages.invalidCredentials();
>               
>               // ...
>                               
>               return null;            
>       }
> }
> MessageBundle interface: demo.i18n.Messages.java
> package demo.i18n;
> import org.apache.deltaspike.core.api.message.MessageBundle;
> import org.apache.deltaspike.core.api.message.MessageTemplate;
> @MessageBundle
> public interface Messages {
>       
>       @MessageTemplate("{appdev.messages.invalidCredentials}")
>       String invalidCredentials();
> }
> Messages files: demo.i18n.Messages_es.properties
> demo.i18n.Messages.properties
> demo.i18n.Messages_es.properties
> demo.i18n.Messages_es_EC.properties
> faces-config.xml
> <?xml version="1.0" encoding="UTF-8"?>
> <faces-config xmlns="http://xmlns.jcp.org/xml/ns/javaee";
>       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>       xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
> http://xmlns.jcp.org/xml/ns/javaee/web-facesconfig_2_2.xsd";
>       version="2.2">
>       <application>
>               <message-bundle>demo.i18n.Messages</message-bundle>
>               <locale-config>
>                       <default-locale>es_EC</default-locale>
>                       <supported-locale>es</supported-locale>
>               </locale-config>
>       </application>
> </faces-config>
> ApplicationAuthenticator and Messages are both in the EJB module. Deployable 
> EAR sample attached (Java source included).



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Reply via email to