WELD-001408类型[Validator]的不满意依赖项 [英] WELD-001408 Unsatisfied dependencies for type [Validator]

查看:197
本文介绍了WELD-001408类型[Validator]的不满意依赖项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

将项目从Java EE 6迁移到Java EE 7之后,我无法部署我的项目。

I'm unable to deploy my project after migrating it from Java EE 6 to Java EE 7.

我已经启用了CDI(beans.xml with bean- discovery-mode =all用于向后兼容)

I already have CDI enabled (beans.xml with bean-discovery-mode="all" for backwards compatibility)

部署错误似乎与我的代码无关,因为它提到了一个Validator类试图注入at org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor

The deployment error does not seem to be related to my code since it mentions a "Validator" class trying to be injected at org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor

我没有任何线索这里发生了什么。

I don't have a clue of what is going on here.

我正在使用GlassFish 4.0。以下是部署时生成的异常的堆栈跟踪:

I'm using GlassFish 4.0. Here's the stack trace of the exception generated at deployment time:

org.glassfish.deployment.common.DeploymentException: CDI deployment failure:WELD-001408 Unsatisfied dependencies for type [Validator] with qualifiers [@Default] at injection point [[UnbackedAnnotatedField] @Inject private org.hibernate.validator.internal.cdi.interceptor.ValidationInterceptor.validator]
at org.glassfish.weld.WeldDeployer.event(WeldDeployer.java:225)
at org.glassfish.kernel.event.EventsImpl.send(EventsImpl.java:131)
at org.glassfish.internal.data.ApplicationInfo.load(ApplicationInfo.java:328)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:493)
at com.sun.enterprise.v3.server.ApplicationLifecycle.deploy(ApplicationLifecycle.java:219)
at org.glassfish.deployment.admin.DeployCommand.execute(DeployCommand.java:491)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:527)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2$1.run(CommandRunnerImpl.java:523)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:356)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$2.execute(CommandRunnerImpl.java:522)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:546)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.doCommand(CommandRunnerImpl.java:1423)
at com.sun.enterprise.v3.admin.CommandRunnerImpl.access$1500(CommandRunnerImpl.java:108)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1762)
at com.sun.enterprise.v3.admin.CommandRunnerImpl$ExecutionContext.execute(CommandRunnerImpl.java:1674)
at com.sun.enterprise.v3.admin.AdminAdapter.doCommand(AdminAdapter.java:534)
at com.sun.enterprise.v3.admin.AdminAdapter.onMissingResource(AdminAdapter.java:224)
at org.glassfish.grizzly.http.server.StaticHttpHandler.service(StaticHttpHandler.java:297)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:246)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:722)


推荐答案

经过几个小时测试出这个问题,我得出的结论是Apache MyFaces CODI之间的不兼容问题(CDI Exte nsion)和Java EE 7.您可以通过创建一个空的Java EE 7项目(Netbeans + Glassfish 4.0)并添加库来自行测试,它们的最后一个版本可以从这里

After a couple of hours testing out this problem, i concluded its related to an incompatibility issue between Apache MyFaces CODI (CDI Extension) and Java EE 7. You can test it on your own by creating an empty Java EE 7 project (Netbeans + Glassfish 4.0) and adding the library, their last release can be downloaded from Here

我正在使用@ViewAccessScoped实现的这个扩展原因。我用新的JSF 2.2注释javax.faces.view.ViewScoped替换它,它实际上与CDI一起使用

I was using this extension cause of its @ViewAccessScoped implementation. I replaced it by the new JSF 2.2 annotation javax.faces.view.ViewScoped which actually works with CDI

这篇关于WELD-001408类型[Validator]的不满意依赖项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆