You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltaspike.apache.org by "Rafael Benevides (JIRA)" <ji...@apache.org> on 2014/08/15 16:40:18 UTC

[jira] [Resolved] (DELTASPIKE-686) WELD-001408: Unsatisfied dependencies error message when injecting type-safe messages @MessageBundle instance

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

Rafael Benevides resolved DELTASPIKE-686.
-----------------------------------------

    Resolution: Cannot Reproduce

I tried your code on my EAR example for DeltaSpike and I didn't get any deployment exceptions. The project is attached with its sources

> 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)