Получение org.apache.cxf.jaxws.spi.ProviderImpl не найдено проблемы в AEM

#java #web-services #osgi #cxf #aem

Вопрос:

Я работаю над проектом AEM maven, в котором мне нужно использовать веб-сервис. Я использую Eclipse для написания кода и для его реализации с использованием библиотеки CXF. Код отлично работает в образце проекта, но как только я развертываю пакет на CRXD в AEM, а затем пытаюсь использовать его, он выдает следующую ошибку в самой первой строке при создании объекта службы.

javax.xml.ws.spi.FactoryFinder$Ошибка конфигурации: Поставщик org.apache.cxf.jaxws.spi.ProviderImpl не найден

Это код, который я использую.

         ServiceXML serviceXml = new ServiceXML(wsdlURL, SERVICE_NAME);
        IServiceXML ixmlPort = serviceXml.getSAApiTPSIntegrationsXML();
        
        ((BindingProvider) ixmlPort).getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username");
        ((BindingProvider) ixmlPort).getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "pssw0rd");
        
        final String username = "username";
        final String password = "pssw0rd";
        Authenticator.setDefault(new Authenticator() {
            @Override
            protected PasswordAuthentication getPasswordAuthentication() {
                    return new PasswordAuthentication(
                            username,
                            password.toCharArray());
                    }
        });         

                
       metaData = ixmlPort.getMetadata("username", "CA");
 

Это правила приличия, которые я включил в свой пом

    <dependency>
        <groupId>org.glassfish.metro</groupId>
        <artifactId>wssx-impl</artifactId>
        <version>3.0.0</version>
    </dependency>
    <!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-rt-frontend-jaxws -->
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-frontend-jaxws</artifactId>
        <version>3.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-transports-http</artifactId>
        <version>3.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-ws-security</artifactId>
        <version>3.3.2</version>
    </dependency>
    <dependency>
        <groupId>org.apache.cxf</groupId>
        <artifactId>cxf-rt-ws-policy</artifactId>
        <version>3.3.2</version>
    </dependency>
 

Я думаю, что, вероятно, он не может найти эту библиотеку CXF в среде AEM. Я много ищу его решение, и единственное, что удалось найти, — это то, что в некоторых сценариях люди предлагают использовать для него пакеты OSGI. Но мне интересно, зачем нам нужен пакет, когда мы включили зависимости в pom, и они должны быть частью пакета,

Комментарии:

1. Там нет никого, кто мог бы помочь 🙁

2. Я помню, что у меня было много проблем при использовании cxf в AEM, мне также пришлось использовать следующую зависимость: <зависимость> <зависимость><идентификатор группы>org.apache.cxf<Идентификатор группы></Идентификатор группы> </Идентификатор группы><Идентификатор группы> < Идентификатор группы > < идентификатор группы > < привязка данных cxf-rt-xmlbeans<идентификатор></Идентификатор> </идентификатор><версия>${cxf.версия}<версия></версия> </версия>< / зависимость>