首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在通配符10中隔离war类加载。org.apache.cxf.enpoint.Client类的可见性问题

如何在通配符10中隔离war类加载。org.apache.cxf.enpoint.Client类的可见性问题
EN

Stack Overflow用户
提问于 2018-10-25 11:20:45
回答 1查看 1K关注 0票数 0

我正在尝试部署一个war,war有一个JAX客户端,用于Wildfli10.1.0.Final中的SOAP服务。当我试图获得webservice的端口时,javax.xml.ws.Service中的委托接口将自动转到getPort()方法的apache实现。

当它的内部尝试创建代理连接时,我得到一个IllegalArgumentException,因为类加载器看不到org.apache.cxf.enpoint.Client。

我已经阅读了文档和野蝇类加载层次结构。野生蝇有一个cxf-core.jar(3.1.6),我的war也有cxf-core.jar(3.1.7)。我的估计是,它试图从通配符访问cxf-core.jar并抛出类加载问题。

JBOSS有不同的元文件来改变普通类加载的流程,比如jboss-web.xml、jboss-classloading.xml等等。我的查询应该使用哪个元文件来解决类加载器的可见性问题。

什么将是元文件,内容是什么,以及我需要在内容中写入的引用(比如war名称mywar.war)。

正在获取的错误跟踪:

13:38:22,877信息创建服务{http://exp.com/webservices/}CustomerRelationshipManagementWebService java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:581):http://localhost:5321/Nsb.CustomerRelationshipManagement.WebService.asmx?wsdl 13:39:18,632错误斯泰尔 java.lang.IllegalArgumentException:接口org.apache.cxf.endpoint.Client在类加载程序13:39:18,642错误斯泰尔 at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557) 13:39:18,646 ERROR 斯泰尔 at java.lang.reflect.Proxy$ProxyClassFactory.apply(Proxy.java:557) 13:39:18,648错误java.lang.reflect.WeakCache$Factory.get(WeakCache.java:230) 13:39:18,654错误斯泰尔在java.lang.reflect.WeakCache.get(WeakCache.java:127) 13:39:18,656错误斯泰尔在java.lang.reflect.Proxy.getProxyClass0(Proxy.java:419) 13:39:18,662错误斯泰尔在java.lang.reflect.Proxy.newProxyInstance(Proxy.java:719) 13:39:18,664错误斯泰尔在org.apache.cxf.common.util.ProxyHelper.getProxyInternal(ProxyHelper.java:47) 13:39:18,666错误斯泰尔 at org.apache.cxf.common.util.ProxyHelper.getProxy(ProxyHelper.java:101) 13:39:18,669 ERROR 斯泰尔 at org.apache.cxf.frontend.ClientProxyFactoryBean.create(ClientProxyFactoryBean.java:175) 13:39:18,671 ERROR 斯泰尔 at org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create(JaxWsProxyFactoryBean.java:142) 13:org.apache.cxf.jaxws.ServiceImpl.createPort(ServiceImpl.java:493) 13:39:18,675错误斯泰尔在org.jboss.wsf.stack.cxf.client.ProviderImpl$JBossWSServiceImpl.createPort(ProviderImpl.java:578) 13:39:18,680错误斯泰尔在org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImpl.java:359) 13:39:18,691错误斯泰尔在org.apache.cxf.jaxws.ServiceImpl.getPort(ServiceImplcom.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap(CustomerRelationshipManagementWebService.java:72) ( .java:350) 13:39:18,700错误斯泰尔 at javax.xml.ws.Service.getPort(Service.java:99) 13:39:18,705错误斯泰尔

提前感谢

EN

回答 1

Stack Overflow用户

发布于 2018-10-25 15:22:50

您需要将jboss-deployment-structure.xml文件添加到WAR的web文件夹中,从而将JBoss WEB服务子系统排除在部署之外。

资料来源: 将子系统排除在部署之外

下面是一个这样做的例子。

代码语言:javascript
复制
    <?xml version="1.0" encoding="UTF-8"?>  
    <jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.2">  
      <deployment>  
        <exclude-subsystems>   
          <subsystem name="webservices" />
        </exclude-subsystems>
        <dependencies>
          <module name="org.apache.cxf" />
          <module name="org.apache.cxf.impl" />
        </dependencies>  
      </deployment>  
    </jboss-deployment-structure> 
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52988050

复制
相关文章

相似问题

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