Java WELD-001408 类型不满足的依赖关系......在注入点带有限定符 [@Default]
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/23561836/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
WELD-001408 Unsatisfied dependencies for type ... with qualifiers [@Default] at injection point
提问by PT_STAR
I got a stupid problem when deploying my Java Application on JBoss. Before I changed my source code using an interface class everything was fine. So here is my problem:
在 JBoss 上部署 Java 应用程序时遇到了一个愚蠢的问题。在我使用接口类更改源代码之前,一切都很好。所以这是我的问题:
public interface FWInterface {
public FWResult process(FWRequest fwRequest, FWResult fwResult,
Integer commitRows) throws Exception;
}
...
...
@Stateless
public class FWHandlerSqrMind extends FWHandlerDefault implements FWInterface {
public FWResult process(FWRequest fwRequest, FWResult fwResult, Integer commitRows)
throws Exception {
... some JavaCode here
}
}
This ends up with the following Error at deployment on JBoss 7.1:
这最终会在 JBoss 7.1 上部署时出现以下错误:
10:05:34,838 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC00001: Failed to start service jboss.deployment.unit."mdk-exchange-1.1.0.war".WeldService: org.jboss.msc.service.StartException in service jboss.deployment.unit."mdk-exchange-1.1.0.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [FWHandlerAufTracking] with qualifiers [@Default] at injection point [[field] @Inject de.mdkbw.exchange.filewatcher.FWMain.fwhAufTracking] at org.jboss.as.weld.services.WeldService.start(WeldService.java:83) at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_15] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_15] at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_15] Caused by: org.jboss.weld.exceptions.DeploymentException: WELD-001408 Unsatisfied dependencies for type [FWHandlerAufTracking] with qualifiers [@Default] at injection point [[field] @Inject de.mdkbw.exchange.filewatcher.FWMain.fwhAufTracking] at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:311) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:143) at org.jboss.weld.bootstrap.Validator.validateRIBean(Validator.java:163) at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:382) at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:367) at org.jboss.weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:379) at org.jboss.as.weld.WeldContainer.start(WeldContainer.java:83) at org.jboss.as.weld.services.WeldService.start(WeldService.java:76)
10:05:34,838 错误 [org.jboss.msc.service.fail](MSC 服务线程 1-6)MSC00001:无法启动服务 jboss.deployment.unit."mdk-exchange-1.1.0.war".WeldService : org.jboss.msc.service.StartException in service jboss.deployment.unit."mdk-exchange-1.1.0.war".WeldService: org.jboss.weld.exceptions.DeploymentException: WELD-001408 不满足的依赖类型 [ FWHandlerAufTracking] 带有限定符 [@Default] 在注入点 [[field] @Inject de.mdkbw.exchange.filewatcher.FWMain.fwhAufTracking] 在 org.jboss.as.weld.services.WeldService.start(WeldService.java:83)在 org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 org.jboss.msc.service.ServiceControllerImpl $StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.2.GA.jar:1.0.2.GA] 在 java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [rt.jar:1.7.0_15] 在 java.util.concurrent .ThreadPoolExecutor$Worker.run(Unknown Source) [rt.jar:1.7.0_15] at java.lang.Thread.run(Unknown Source) [rt.jar:1.7.0_15] 引起:org.jboss.weld.exceptions .DeploymentException: WELD-001408 在 org.jboss.weld.bootstrap.Validator 的注入点 [[field] @Inject de.mdkbw.exchange.filewatcher.FWMain.fwhAufTracking] 与类型 [FWHandlerAufTracking] 的不满意依赖项与限定符 [@Default] .validateInjectionPoint(Validator.java:311) at org.jboss.weld.bootstrap.Validator.validateInjectionPoint(Validator.java:280) at org.jboss.weld.bootstrap.Validator.validateBean(Validator.java:143) at org. jboss.weld.bootstrap.Validator。validateRIBean(Validator.java:163) at org.jboss.weld.bootstrap.Validator.validateBeans(Validator.java:382) at org.jboss.weld.bootstrap.Validator.validateDeployment(Validator.java:367) at org.jboss .weld.bootstrap.WeldBootstrap.validateBeans(WeldBootstrap.java:379) 在 org.jboss.as.weld.WeldContainer.start(WeldContainer.java:83) 在 org.jboss.as.weld.services.WeldService.start(WeldService .java:76)
If I remove the implementation everything is ok. Could anybody tell me what the problem is? Am I too stupid?? Thanks in advance!
如果我删除实现一切都好。有人能告诉我是什么问题吗?我是不是太傻了??提前致谢!
采纳答案by phoenix7360
How do you inject your bean? Like that?
你如何注入你的bean?像那样?
@Inject
private FWHandlerSqrMind handler;
If so could you try to inject it like that:
如果是这样,您可以尝试像这样注入它:
@Inject
private FWInterface handler;
回答by VladS
Do you have META-INF/beans.xml or WEB-INF/beans.xml file in your class path?
您的类路径中是否有 META-INF/beans.xml 或 WEB-INF/beans.xml 文件?
回答by visvadw
Missing beans.xml was the problem in my case (WildFly 8.2.0).
Just placing a simple beans.xml like the following solved this problem:
缺少 beans.xml 是我的问题(WildFly 8.2.0)。
只需放置一个如下所示的简单 beans.xml 即可解决此问题:
<?xml version="1.0"?>
<beans xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://jboss.org/schema/cdi/beans_1_0.xsd" />