带有参数化 bean 类的托管 bean 必须是 @Dependent:class org.apache.cxf.jaxrs.provider.AbstractCachingMessageProvider [英] Managed bean with a parameterized bean class must be @Dependent: class org.apache.cxf.jaxrs.provider.AbstractCachingMessageProvider
问题描述
在我的应用程序中添加 tika 解析器 后,我在 Spring 应用程序中收到以下错误.我在 wildfly 10.1.1 final
上运行应用程序.
After adding tika parser in my application I am getting the following error in my Spring Application. I am running the application on wildfly 10.1.1 final
.
11:11:30,371 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-2) MSC000001: Failed to start service jboss.deployment.unit."MyApp.war".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."MyApp.war".WeldStartService: Failed to start service
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1904)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.jboss.weld.exceptions.DefinitionException: WELD-000071: Managed bean with a parameterized bean class must be @Dependent: class org.apache.cxf.jaxrs.provider.AbstractCachingMessageProvider
at org.jboss.weld.bean.ManagedBean.checkType(ManagedBean.java:208)
at org.jboss.weld.bean.AbstractBean.initializeAfterBeanDiscovery(AbstractBean.java:107)
at org.jboss.weld.bean.ManagedBean.initializeAfterBeanDiscovery(ManagedBean.java:122)
at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$AfterBeanDiscoveryInitializerFactory.doWork(ConcurrentBeanDeployer.java:136)
at org.jboss.weld.bootstrap.ConcurrentBeanDeployer$AfterBeanDiscoveryInitializerFactory.doWork(ConcurrentBeanDeployer.java:127)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:63)
at org.jboss.weld.executor.IterativeWorkerTaskFactory$1.call(IterativeWorkerTaskFactory.java:56)
at java.util.concurrent.FutureTask.run(FutureTask.java:266)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
at org.jboss.threads.JBossThread.run(JBossThread.java:320)
根据之前给出的解决方案,我在我的应用程序中包含了以下文件:
As per the solutions previously given I have included the following files in my application:
jboss-all.xml
- 位置是 (src/main/resources/META-INF/
)beans.xml
- 位置是 (src/main/webapp/WEB-INF/
)
jboss-all.xml
- Location is (src/main/resources/META-INF/
)beans.xml
- Location is (src/main/webapp/WEB-INF/
)
内容如下:
beans.xml
<beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"
bean-discovery-mode="annotated">
</beans>
jboss-all.xml
<jboss xmlns="urn:jboss:1.0">
<weld xmlns="urn:jboss:weld:1.0" require-bean-descriptor="true"/>
</jboss>
请让我知道是否需要为修复做任何其他事情.我仍然遇到与上述相同的异常.
Please let me know if anything else to be done for the fix . I am still getting the same exception as mentioned above .
推荐答案
Spring app deploy exception on wildfly 12.0.0.Final
Spring app deploy exception on wildfly 12.0.0.Final
Caused by: org.jboss.weld.exceptions.DefinitionException: WELD-000071: Managed bean with a parameterized bean class must be @Dependent: class org.apache.cxf.jaxrs.provider.DataSourceProvider
问题依赖
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxrs</artifactId>
<version>3.2.4</version>
</dependency>
解决方案帮助我修复了在 web.xml contextConfigLocation 中重命名的异常
部署异常
部署成功
Solution help me fixed exception is rename in web.xml contextConfigLocation
<param-value>WEB-INF/beans.xml</param-value>
deploy exception
<param-value>WEB-INF/application.xml</param-value>
deploy success
这篇关于带有参数化 bean 类的托管 bean 必须是 @Dependent:class org.apache.cxf.jaxrs.provider.AbstractCachingMessageProvider的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!