首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CXF2.7.0Web服务在Wildfly 10中的部署

CXF2.7.0Web服务在Wildfly 10中的部署
EN

Stack Overflow用户
提问于 2016-02-28 17:47:32
回答 1查看 4.5K关注 0票数 1

目标-将EAR应用程序从JBoss EAP 5迁移到野生蝇10

问题:代码具有CXF 2.7.0 web服务客户端代码(用于调用第三方web服务),并将其添加到EAR/lib文件夹中。但在部署过程中,我会遇到以下情况

日志:

代码语言:javascript
复制
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)

beans-xml

我还在元-INF和WEB中添加了以下beans-xml

代码语言:javascript
复制
<?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/lib文件夹本身,这次部署的问题也与上面提到的问题相同。

CXF版野蝇10

Wildfly 10附带了CXF 3.1.4,但是我已经在lib文件夹中提供了我需要的jars,并且没有提到任何提供了CXF模块的容器,以确保在libs中加载CXF版本。

有人能提供一个洞察我做错了什么吗?谢谢你的帮忙

在搜索了一段时间之后,我在jboss-deployment-strucutre.xml中添加了以下配置更改,但仍然存在问题。请使用此链接获取详细信息https://developer.jboss.org/thread/268163

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-08-11 18:01:51

在为提供CXF3.1.4的容器添加适当的排除项并提供CXF版本2.7或2.4.4 (不确定其他较低版本)后,问题得到解决

jboss-deployment-structure.xml必须位于父级META中,以防应用程序有多个模块(JAR、WAR、MDB)

以下是我的参赛作品:

代码语言:javascript
复制
    <!-- Exclusions allow you to prevent the server from automatically adding some dependencies     -->
    <exclusions>
       <!-- Exclude Version cxf of JBOSS -->
       <module name="org.apache.cxf" />
       <!-- Exclude JAVA EE of JBOSS (javax.ws..) => Add dependency javax.annotation -->
       <module name="javaee.api" />

       <!-- Exclude RestEasy conflict (javax.ws.rs.ext.RunDelegate) -->
       <module name="org.jboss.resteasy.resteasy-jackson-provider" />

       <!-- module name="org.apache.log4j" />
       <module name="org.apache.commons.logging"/ -->
       <module name="org.jboss.as.jaxrs"/>
       <module name="org.jboss.resteasy.resteasy-jaxrs"/>
       <module name="org.jboss.resteasy.resteasy-cdi"/>
       <module name="org.jboss.resteasy.jackson-provider"/>
       <module name="org.jboss.resteasy.resteasy-atom-provider"/>
       <module name="org.jboss.resteasy.resteasy-hibernatevalidator-provider"/>
       <module name="org.jboss.resteasy.resteasy-jaxb-provider"/>
       <module name="org.jboss.resteasy.resteasy-jettison-provider"/>
       <module name="org.jboss.resteasy.resteasy-jsapi"/>
       <module name="org.jboss.resteasy.resteasy-multipart-provider"/>
       <module name="org.jboss.resteasy.resteasy-yaml-provider"/>
       <module name="org.codehaus.jackson.jackson-core-asl"/>
       <module name="org.codehaus.jackson.jackson-jaxrs"/>
       <module name="org.codehaus.jackson.jackson-mapper-asl"/>
       <module name="org.codehaus.jackson.jackson-xc"/>
       <module name="org.codehaus.jettison"/>
       <module name="javax.ws.rs.api"/>
    </exclusions>
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35686033

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档