Как изолировать загрузку военных классов в wildfly 10. Получение проблемы с видимостью для класса org.apache.cxf.enpoint.Client - PullRequest
0 голосов
/ 25 октября 2018

Я пытаюсь развернуть войну, в которой есть клиент JAX-WS для служб SOAP в Wildfly 10.1.0.Final.Когда я пытаюсь получить порт для веб-службы, интерфейс делегата в javax.xml.ws.Service автоматически переходит к реализации apache cxf метода getPort ().

При внутренней попытке создать прокси-соединение я получаю исключение IllegalArgumentException, поскольку org.apache.cxf.enpoint.Client не виден загрузчику классов.

Я прочитал документацию и иерархию загрузки классов wildfly.У Wildfly есть cxf-core.jar (3.1.6), а у моей войны также есть cxf-core.jar (3.1.7).Моя оценка состоит в том, что он пытается получить доступ к cxf-core.jar из wildfly и выбрасывает проблему с загрузкой классов.

В JBOSS есть разные метафайлы для изменения потока обычной загрузки классов, такие как jboss-web.xml, jboss-classloading.xml и т. Д. Мой запрос, какой метафайл я должен использовать для решения этой проблемы видимости загрузчика классов.

Что такое метафайл, какой контент и какие ссылки мне нужно написать в содержании (скажем, war name mywar.war).

Трассировка ошибки, которую я получаю:

13: 38: 22,877 ИНФОРМАЦИЯ [org.apache.cxf.wsdl.service.factory.ReflectionServiceFactoryBean] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) Создание службы {http://exp.com/webservices/}CustomerRelationshipManagementWebServiceиз WSDL: http://localhost:5321/Nsb.CustomerRelationshipManagement.WebService.asmx?wsdl 13: 39: 18,632 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) java.lang.IllegalArgumentException: интерфейс org.apache.cxf.endpoint.Client не виден из классазагрузчик 13: 39: 18 642 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в java.lang.reflect.Proxy $ ProxyClassFactory.apply (Proxy.java:581) 13: 39: 18 646 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в Java.lang.reflect.Proxy $ ProxyClassFactory.apply (Proxy.java:557) 13: 39: 18,648 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в java.lang.reflect.WeakCache $ Factory.get (.java: 230) 13: 39: 18,654 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в java.lang.reflect.WeakCache.get (WeakCache.java:127) 13: 39: 18,656 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в java.lang.reflect.Proxy.getProxyClass0 (Proxy.java:419) 13: 39: 18,662 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0e1 224 at 224ac4f)java.lang.reflect.Proxy.newProxyInstance (Proxy.java:719) 13: 39: 18,664 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в org.apache.cxf.common.util.ProxyHelper.(ProxyHelper.java:47) 13: 39: 18,666 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в org.apache.cxf.common.util.ProxyHelper.getProxy (ProxyHelper.java:101) 13:39: 18 669 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в org.apache.cxf.frontend.ClientProxyFactoryBean.create (ClientProxyFactoryBean.java: 175) 13: 39: 18,671 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в org.apache.cxf.jaxws.JaxWsProxyFactoryBean.create (JaxWsProxyFactoryBean,63: 39: ERR: 3914: 39: 14: 39: 14: 39: 14: 73stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) по адресу org.apache.cxf.jaxws.ServiceImpl.createPort (ServiceImpl.java:493) 13: 39: 18,675 ОШИБКА [stderr] (e99c3221-b10-b1022fac3e1754d) по адресу org.jboss.wsf.stack.cxf.client.ProviderImpl $ JBossWSServiceImpl.createPort (ProviderImpl.java:578) 13: 39: 18,680 ОШИБКА [stderr] (e99c3221-bfd-bg)apache.cxf.jaxws.ServiceImpl.getPort (ServiceImpl.java:359) 13: 39: 18,691 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в org.apache.cxf.jaxwlImpPervice (сервисная служба).java: 350) 13: 39: 18,700 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) в javax.xml.ws.Service.getPort (Service.java:99) 13: 39: 18,705 ОШИБКА [stderr] (e99c3221-b10d-4fe7-b0ff-22fac3e1754d) по адресу com.abc.client.CustomerRelationshipManagementWebService.getCustomerRelationshipManagementWebServiceSoap (CustomerRelationshipManagementWebService.java:72)

Заранее спасибо

1 Ответ

0 голосов
/ 25 октября 2018

Вам необходимо исключить подсистему веб-службы JBoss из своего развертывания, добавив файл jboss-deploy-structure.xml в папку WEB-INF WAR. Источник: Исключение подсистемы из развертывания Вот пример, который бы это сделал.

    <?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> 
...