Getting org.apache.cxf.jaxws.spi.ProviderImpl not found Issue in AEM | Community
Skip to main content
Level 2
April 7, 2021
Solved

Getting org.apache.cxf.jaxws.spi.ProviderImpl not found Issue in AEM

  • April 7, 2021
  • 8 replies
  • 16150 views

I am working on an AEM maven project where I have to consume a web service. I am using Eclipse for writing code and for its implementation using CXF library. The code works fine in a sample project but as soon as I deploy package on CRXD in AEM and then try from it, it gives following error on the very first line while creating service object.

javax.xml.ws.spi.FactoryFinder$ConfigurationError: Provider org.apache.cxf.jaxws.spi.ProviderImpl not found

 

It is the code I am using. 

 

 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");

These are the dependencies I have included in my pom

 

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

I think probably it is unable to find this CXF library in AEM environment. I search a lot for its solution and only thing could found that in some scenarios people suggesting to use OSGI bundles for it. But I am wondering why would we need bundle when we have included dependencies in pom and these should be part of the package. Kindly guide.

 

This post is no longer active and is closed to new replies. Need help? Start a new post to ask your question.
Best answer by kustavdutta1

Hi @touseefkhan4pk 

I checked to find that from 6.5 we moved away from sling fragment bundles exposing underlying jdk webservice support and no longer have the default JRE provider impl available from felix framework bundle. I found an internal request with our Engineering Team regarding the same, where a workaround is suggested as follows. Can you try boot delegating the following:

 

org.osgi.framework.bootdelegation=sun.*,com.sun.*,javax.xml.ws,javax.xml.ws.*,javax.xml.bind,javax.xml.bind.*,javax.xml.soap,javax.jws,javax.jws.soap

To do this change, you just need to edit the *sling.properties* file under *crx-quickstart\conf*. Search for org.osgi.framework.bootdelegation and amend the value.

8 replies

Vijayalakshmi_S
Level 10
April 7, 2021

Hi @touseefkhan4pk,

Added dependency should be resolvable as OSGI dependency/as a bundle when deployed in AEM.

Ideally this happens as part of core module build with the use of respective configurations as part of maven-bundle-plugin/bnd-maven-plugin (both the plugins are responsible for creating OSGI bundle of our java classes). 

If you are using maven-bundle-plugin, try to add the below in <configuration> -> <instructions> section

 

<Embed-Dependency>*</Embed-Dependency> <Embed-Transitive>true</Embed-Transitive>

 

If you are using bnd-maven-plugin, -conditionalpackage entry is the respective configuration but it doesn't help completely. (It works for some dependency). In this case, we can create OSGI bundle outside project code base via standalone simple maven project using maven-bundle-plugin. Let know if you are looking for details in this case.

Level 2
April 8, 2021

@vijayalakshmi_s @Thanks for reply. This is my maven bundle plugin in my module's pom.

 

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.0.1</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>
org.osgi.framework,*;resolution:=optional
javax.inject;version=0.0.0,*
</Import-Package>
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Sling-Model-Packages>com.stewart.models</Sling-Model-Packages>
</instructions>
</configuration>
</plugin>

 

I added lines suggested by you but getting many error something like this;

 

java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArrayIndexOutOfBoundsException
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: META-INF/versions/9/com/sun/tools/xjc/CatalogUtil.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: META-INF/versions/9/com/sun/tools/xjc/XJC2Task.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: module-info.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: org/apache/cxf/wsdl11/WSDLManagerImpl.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: org/apache/cxf/jaxb/io/DataWriterImpl.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: META-INF/versions/9/org/glassfish/jaxb/core/StackHelper.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: org/apache/cxf/transport/http/Headers.class
[ERROR] Error building bundle com.myproject:myproject.integration:bundle:0.0.6 : Invalid class file: org/apache/cxf/transport/servlet/CXFNonSpringServlet.class

Vijayalakshmi_S
Level 10
April 8, 2021

Hi @touseefkhan4pk,

Update the maven-bundle-plugin version per the Maven version you are using. (One you are currently using is from 2009 - 2.0.1)

https://mvnrepository.com/artifact/org.apache.felix/maven-bundle-plugin

 

Level 2
April 8, 2021
I have parent pom and then pom in multiple modules. Do I need to change maven-bundle-plugin in each module or only needs to change in the current module I am working ?
Level 2
April 8, 2021

@vijayalakshmi_s  Thanks for helping. I am really stuck here. Please help me to resolve this issue. I tried your solution but it didn't work. I don't have much knowledge about maven bundle plugin. I changed its something like this but it also didn't help. Please how should I write this maven bundle plugin with the above CXF dependencies ?

 

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.2</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>
org.osgi.framework,

*;resolution:=optional
</Import-Package>
<Export-Package>
${export.package}.*,facebook4j.*,com.fasterxml.*,twitter4j.*,com.brightedge.*
<!-- New CXF export -->
com.brightedge.*,org.apache.com,org.glassfish.*,javax.xml

</Export-Package>
<Embed-Dependency>
${embed.dependency},
itextpdf,xmlworker,

<!-- New CXF dependencies -->
cxf-rt-frontend-jaxws,
cxf-rt-frontend-simple,
cxf-rt-transports-http,
cxf-rt-transports-http-jetty,
cxf-rt-ws-security,
cxf-rt-features-logging,
webservices-rt,
webservices-api

</Embed-Dependency>
<Require-Bundle>org.apache.cxf.bundle</Require-Bundle>

</instructions>
</configuration>
</plugin>

Vijayalakshmi_S
Level 10
April 8, 2021

HI @touseefkhan4pk,

In parent pom.xml,

 

<dependencyManagement> <dependencies> <!-- existing/already available dependencies of your project --> <!-- Newly added CXF dependencies --> </dependencies> </dependencyManagement>

 

In core pom.xml -> <dependencies> section

 

<dependencies> <!-- existing/already available dependencies of your project --> <!-- Newly added CXF dependencies without version --> </dependencies>

 

In plugin section of your core pom.xml, it is same as you shared in your initial trial. Only issue in that was with version of maven-bundle-plugin used which was 2.0.1. So we need to update that. If you are doing it at parent level, you need not explicitly mention in submodules. If you couldn't get this let me know, Will elaborate again.

For now you try the below, I am amending on top of the one you shared initially. 

 

<plugin> <groupId>org.apache.felix</groupId> <artifactId>maven-bundle-plugin</artifactId> <version>5.1.2</version> <extensions>true</extensions> <configuration> <instructions> <Import-Package> org.osgi.framework,*;resolution:=optional javax.inject;version=0.0.0,* </Import-Package> <Embed-Dependency>*</Embed-Dependency> <Embed-Transitive>true</Embed-Transitive> <Sling-Model-Packages>com.stewart.models</Sling-Model-Packages> </instructions> </configuration> </plugin>

 

 

Vijayalakshmi_S
Level 10
April 9, 2021

Hi @touseefkhan4pk,

Not sure why "Embed-Transitive" entry is not used in your plugin configuration (which I mentioned in my initial response to this thread.)

Significance of this is, added CXF dependencies might in turn be dependent on some of the dependencies which are referred to as Transitive dependencies or Compile time dependencies. To include the same as part of our bundle, we need to set Embed-Transitive to true. 

Please add this entry and try. 

 

Also not sure of the need for specifying the dependencies explicitly in <Embed-Dependency> entry. (adding "*" should be suffice)

 

Please find below Apache Maven bundle plugin documentation 

https://felix.apache.org/documentation/subprojects/apache-felix-maven-bundle-plugin-bnd.html

 

Update this thread if you still face any issues. 

Level 2
April 8, 2021

@vijayalakshmi_s Now I am getting following error. 

[ERROR] Bundle com.stewart:stewart.cms:bundle:0.0.6 : The default package '.' is not permitted by the Import-Package syntax.
This can be caused by compile errors in Eclipse because Eclipse creates
valid class files regardless of compile errors.
The following package(s) import from the default package null
[ERROR] Error(s) found in bundle configuration.

 

This is my maven bundle plugin in my module's pom

 

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.2</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>
org.osgi.framework,*;resolution:=optional
javax.inject;version=0.0.0,*
</Import-Package>
<Export-Package>
${export.package}.*,facebook4j.*,com.fasterxml.*,twitter4j.*,com.brightedge.*

</Export-Package>
<Embed-Dependency>*</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>

</instructions>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
</plugin>

 

This is my parent pom


<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<repositories>
<repository>
<id>day-external-central</id>
<name>Day Central Repository</name>
<url>https://repo.adobe.com/nexus/content/groups/public</url>
</repository>
<repository>
<id>day-external</id>
<name>Day External Repository</name>
<url>https://repository.apache.org/content/repositories/snapshots</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.external</id>
<name>SpringSource Enterprise Bundle Repository - External</name>
<url>http://repository.springsource.com/maven/bundles/external</url>
</repository>
<repository>
<id>com.springsource.repository.bundles.release</id>
<name>SpringSource Enterprise Bundle Repository - SpringSource Bundle Releases</name>
<url>http://repository.springsource.com/maven/bundles/release</url>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>day-external-central</id>
<name>Day Central Repository</name>
<url>https://repo.adobe.com/nexus/content/groups/public</url>
</pluginRepository>
<pluginRepository>
<id>adobe-plugins</id>
<name>Adobe Plugin Repository</name>
<url>https://repo.adobe.com/nexus/content/groups/public</url>
<releases>
<enabled>true</enabled>
</releases>
<snapshots>
<enabled>false</enabled>
</snapshots>
</pluginRepository>
</pluginRepositories>
<groupId>com.stewart</groupId>
<artifactId>stewart.parent</artifactId>
<version>0.0.6</version>
<packaging>pom</packaging>
<name>Stewart : AEM Application Build</name>
<description>This is the parent POM of Stewart CMS project.</description>
<properties>
<deploy.suffix>/apps/stewart/install</deploy.suffix>
<maven.test.skip>true</maven.test.skip>
<cq.host>localhost</cq.host>
<!--cq.devhost>10.207.7.198</cq.devhost-->
<cq.port>4502</cq.port>
<cq.port1>4503</cq.port1>
<cq.user>admin</cq.user>
<cq.password>admin</cq.password>
</properties>
<modules>
<module>stewart.core</module>
<module>stewart.integration</module>
<module>stewart.cms</module>
<module>stewart.ui</module>
<!--<module>stewart.content</module>-->
</modules>

<build>
<pluginManagement>
<plugins>
<!-- Maven Java compiler plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<!-- <version>2.0.2</version> -->
<version>2.3.2</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>

</plugin>

<!-- Maven SCR pluging to read OSGi annotations and create OSGi descriptors -->
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-scr-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>generate-scr-scrdescriptor</id>
<goals>
<goal>scr</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>com.cognifide.maven.plugins</groupId>
<artifactId>maven-crx-plugin</artifactId>
<version>1.0.4-SNAPSHOT</version>
<configuration>
<url>http://${ip}:${port}</url>
<packageFileName>./stewart.ui/target/stewart.ui.jar</packageFileName>
<user>${user}</user>
<password>${password}</password>
</configuration>
</plugin>

</plugins>
</pluginManagement>
</build>
<profiles>
<!-- Profile for deployment to Local Environment. We need to run two profile to execute this
example: mvn clean install -Plocal-deploy,CI-autoInstallBundle
-->
<profile>
<id>local-deploy</id>
<properties>
<deploy.username>admin</deploy.username>
<deploy.password>admin</deploy.password>
<deploy.url>http://localhost:4502/crx/repository/crx.default</deploy.url>
</properties>
</profile>

<profile>
<id>local-publish-deploy</id>
<properties>
<deploy.username>admin</deploy.username>
<deploy.password>admin</deploy.password>
<deploy.url>http://localhost:4503/crx/repository/crx.default</deploy.url>
</properties>
</profile>
<profile>
<id>autoInstallBundle</id>
<activation>
<activeByDefault>false</activeByDefault>
</activation>
<build>
<plugins>
<plugin>
<!-- Installation and Deployment support -->
<groupId>org.apache.sling</groupId>
<artifactId>maven-sling-plugin</artifactId>
<version>2.0.4-incubator</version>
<executions>
<execution>
<id>install-bundle</id>
<goals>
<goal>install</goal>
</goals>
<configuration>
<slingUrl>${deploy.url}</slingUrl>
<slingUrlSuffix>${deploy.suffix}</slingUrlSuffix>
<usePut>true</usePut>
<user>${deploy.username}</user>
<password>${deploy.password}</password>
<!-- Whether to start the bundle after installing it. If the bundle
is just updated, this parameter is ignored even if the bundle is currently
stopped -->
<bundleStart>true</bundleStart>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
</profiles>

<dependencyManagement>


<dependencies>

<!-- existing/already available dependencies of your project -->
<!-- Newly added CXF dependencies -->

<dependency>
<groupId>javax.xml</groupId>
<artifactId>webservices-api</artifactId>
<version>2.0</version>
</dependency>
<dependency>
<groupId>org.glassfish.metro</groupId>
<artifactId>webservices-rt</artifactId>
<version>2.3</version>
</dependency>

<dependency>
<groupId>org.glassfish.metro</groupId>
<artifactId>wssx-impl</artifactId>
<version>3.0.0</version>
</dependency>

<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-ws-security</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-features-logging</artifactId>
<version>3.4.3</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-simple</artifactId>
<version>3.4.3</version>
<type>jar</type>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-frontend-jaxws</artifactId>
<version>3.4.3</version>
</dependency>
<dependency>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-rt-transports-http-jetty</artifactId>
<version>3.4.3</version>
</dependency>

</dependencies>

</dependencyManagement>

<dependencies>

<!-- Apache Felix dependencies -->
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.osgi.core</artifactId>
<version>1.4.0</version>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr</artifactId>
<version>1.6.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.scr.annotations</artifactId>
<version>1.4.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>org.apache.felix.ipojo</artifactId>
<version>1.8.0</version>
</dependency>
<dependency>
<groupId>net.sf.supercsv</groupId>
<artifactId>super-csv</artifactId>
<version>2.1.0</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.18</version>
</dependency>
<dependency>
<groupId>com.sun.xml.security</groupId>
<artifactId>xml-security-impl</artifactId>
<version>1.0</version>
</dependency>
<dependency>
<groupId>com.adobe.aem</groupId>
<artifactId>uber-jar</artifactId>
<version>6.3.2.2</version>
<classifier>apis</classifier>
<scope>provided</scope>
</dependency>

<!-- Apache Jackrabbit -->
<dependency>
<groupId>org.apache.jackrabbit</groupId>
<artifactId>jackrabbit-jcr-commons</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>javax.jcr</groupId>
<artifactId>jcr</artifactId>
<version>2.0</version>
<scope>provided</scope>
</dependency>

<!-- OSGi Dependencies -->
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_core</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.osgi</groupId>
<artifactId>osgi_R4_compendium</artifactId>
<version>1.0</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.owasp.esapi</groupId>
<artifactId>esapi</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.16</version>
</dependency>

<!-- Common Dependencies -->
<dependency>
<groupId>commons-lang</groupId>
<artifactId>commons-lang</artifactId>
<version>2.4</version>
</dependency>
<dependency>
<groupId>commons-io</groupId>
<artifactId>commons-io</artifactId>
<version>1.4</version>
<scope>provided</scope>
</dependency>

<!-- Java Servlets -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.4</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
<version>1.1.2</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>taglibs</groupId>
<artifactId>standard</artifactId>
<version>1.1.2</version>
</dependency>
<!-- Document Generation Dependencies -->
<dependency>
<groupId>com.itextpdf</groupId>
<artifactId>itextpdf</artifactId>
<version>5.4.1</version>
</dependency>
<dependency>
<groupId>com.itextpdf.tool</groupId>
<artifactId>xmlworker</artifactId>
<version>5.4.1</version>
</dependency>

<dependency>
<groupId>org.docx4j</groupId>
<artifactId>docx4j-ImportXHTML</artifactId>
<version>3.0.0</version>
</dependency>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.7.3</version>
</dependency>
<dependency>
<groupId>net.sf.jtidy</groupId>
<artifactId>jtidy</artifactId>
<version>r938</version>
</dependency>
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>3.0</version>
</dependency>
<dependency>
<groupId>com.googlecode.jaxb-namespaceprefixmapper-interfaces</groupId>
<artifactId>JAXBNamespacePrefixMapper</artifactId>
<version>2.2.4</version>
</dependency>
<dependency>
<groupId>org.apache.ant</groupId>
<artifactId>ant</artifactId>
<version>1.8.2</version>

</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.models.api</artifactId>
<version>1.3.6</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.apache.sling</groupId>
<artifactId>org.apache.sling.commons.classloader</artifactId>
<version>1.3.0</version>
<scope>provided</scope>
</dependency>
<!-- GSON: using this because org.apache.sling.commons.json is deprecated -->
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.8.5</version>
</dependency>

<!-- Logging -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-simple</artifactId>
<version>1.6.4</version>
</dependency>
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.6.4</version>
</dependency>

<!-- Apache commons collections -->
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2.1</version>
</dependency>
<dependency>
<groupId>commons-net</groupId>
<artifactId>commons-net</artifactId>
<version>3.3</version>
</dependency>
</dependencies>
<!-- repositories are declared in <home>/.m2/settings.xml -->

</project>

Vijayalakshmi_S
Level 10
April 22, 2021

Hi @touseefkhan4pk,

For this error statement, I already responded on 11 April 2021. Did you get a chance to try the same. If yes, it is the same error that is repeating?

Also, an alternative suggested to use CXF bundles available in Adobe Helpx link. 

 

Could you please let know which approach you decided to follow - Creating CXF bundle using maven-bundle-plugin or bundles available in Adobe helpx link. 

Level 2
April 9, 2021

Hi @vijayalakshmi_s . Hi @Vijayalakshmi . After lot of hit & trial, i think my code manage to find CXF library in AEM but I am getting error "javax.xml.ws.WebServiceException: org.apache.cxf.service.factory.ServiceConstructionException".

 

This is my maven bundle plugin

          

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>5.1.2</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Import-Package>
org.osgi.framework,
*;resolution:=optional
</Import-Package>
<Export-Package>
${export.package}.*,facebook4j.*,com.fasterxml.*,twitter4j.*,com.brightedge*,org.apache.cxf*,org.glassfish.m*
</Export-Package>
<Embed-Dependency>${embed.dependency},${maven.dependency},be-ixf-java-sdk-jar-with-dependencies,cxf-rt-frontend-jaxws,webservices-rt</Embed-Dependency>

<!--Require-Bundle>org.springframework.beans, org.springframework.core,
org.springframework.integration,org.springframework.context
</Require-Bundle-->
</instructions>
</configuration>
</plugin>

kustavdutta1
Adobe Employee
kustavdutta1Adobe EmployeeAccepted solution
Adobe Employee
May 2, 2022

Hi @touseefkhan4pk 

I checked to find that from 6.5 we moved away from sling fragment bundles exposing underlying jdk webservice support and no longer have the default JRE provider impl available from felix framework bundle. I found an internal request with our Engineering Team regarding the same, where a workaround is suggested as follows. Can you try boot delegating the following:

 

org.osgi.framework.bootdelegation=sun.*,com.sun.*,javax.xml.ws,javax.xml.ws.*,javax.xml.bind,javax.xml.bind.*,javax.xml.soap,javax.jws,javax.jws.soap

To do this change, you just need to edit the *sling.properties* file under *crx-quickstart\conf*. Search for org.osgi.framework.bootdelegation and amend the value.

Level 2
May 27, 2022

It works for me, thanks!

Level 2
November 27, 2024

Hello @touseefkhan4pk ,

 

We have same problem with servlet on AEM Cloud. How could you fix it? These suggestions do not work for me.

REgards.