目标 - 将 EAR 应用程序从 JBoss EAP 5 迁移到 Wildfly 10
问题:代码具有 CXF 2.7.0 Web 服务客户端代码(用于调用第三方 Web 服务)并将其添加到 EAR/lib 文件夹中。但是在部署期间,我遇到了异常
日志:
2016-02-26 12:17:48,075 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-6) MSC000001: Failed to start service jboss.deployment.unit."rts-comcast-01.01.75.ear".WeldStartService: org.jboss.msc.service.StartException in service jboss.deployment.unit."rts-comcast-01.01.75.ear".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.DataBindingProvider
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)
bean-xml
我也将 beans-xml 下面添加到 META-INF 和 WEB-INF
<?xml version="1.0" encoding="UTF-8"?> <beans 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/beans_1_1.xsd"
bean-discovery-mode="annotated">
替代尝试
我怀疑给定的库是否正在加载到应用程序中,并想确认我的依赖关系是否良好。所以制作了一个示例 Web 应用程序并将这次所有的 CXF jar 文件加载到 WEB-INF/lib 文件夹本身并部署这次也与上述相同的问题
Wildfly 10 中的 CXF 版本
Wildfly 10 带有 CXF 3.1.4,但我在我的 lib 文件夹中提供了我需要的 jar,并且没有提及任何容器提供的 CXF 模块,以确保库中的 CXF 版本可以加载。
有人可以提供我做错的地方的见解吗?谢谢你的帮助
搜索了一段时间后,我在 jboss-deployment-strucutre.xml 中添加了以下配置更改,但仍然存在问题。请使用此链接获取详细信息 https://developer.jboss.org/thread/268163