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

[jira] [Created] (DELTASPIKE-686) WELD-001408: Unsatisfied dependencies error message for type-safe messages @MessageBundle interface

Juan Pablo Angamarca created DELTASPIKE-686:
-----------------------------------------------

             Summary: WELD-001408: Unsatisfied dependencies error message for type-safe messages @MessageBundle interface
                 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
            Priority: Blocker


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)