Expand my Community achievements bar.

SOLVED

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

Avatar

Level 2

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.

 

1 Accepted Solution

Avatar

Correct answer by
Employee

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.

View solution in original post

23 Replies

Avatar

Community Advisor

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.

Avatar

Level 2

@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

Avatar

Community Advisor

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

 

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 ?

Avatar

Community Advisor
If you have dependency for maven-bundle-plugin in parent pom, update the version there alone. Remove the explicit entry of <version> from sub modules - This should pick the version mentioned in parent pom.
I have dependency to be included in a sub module so only needs to change in sub module ?

Avatar

Community Advisor

Hi @touseefkhan4pk,

You should be having dependency entry of maven-bundle-plugin in parent pom.xml like below. Update the version there.

<dependency>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>some old version</version> // update version here
</dependency>

In sub module, say core -> within maven-bundle-plugin (<plugin>) entry, remove the version tag. No need to specify explicitly here.

<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.0.1</version>  // remove this version tag
<extensions>true</extensions>
<configuration>
<instructions>
....

Avatar

Level 2
Hi @Vijayalakshmi Thanks for replying and guiding. I tried your above solution but it didn't work.
Hi @Vijayalakshmi . After lot of hit & trial, i think my code manage to find CXF library in AEM but now I am getting following error

Avatar

Level 2

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

Avatar

Community Advisor

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>

 

 

Avatar

Community Advisor

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. 

Hi @Vijaylakshmi, I am providing Emebd-Transitive true and When I set Embed-Dependency as "*". It gives me this error "he 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."
I build project with clean install -X. It gives some extra information regarding this error as " Failed to execute goal org.apache.felix:maven-bundle-plugin:5.1.2:bundle (default-bundle) on project stewart.cms: Error(s) found in bundle configuration -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.felix:maven-bundle-plugin:5.1.2:bundle (default-bundle) on project stewart.cms: Error(s) found in bundle configuration at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:215) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)"

Avatar

Community Advisor

Hi @touseefkhan4pk,

Thanks for the input. The reason for that error(The default package '.' is not permitted by the Import-Package syntax) would be if any of the dependency's class file doesn't has a package name.

If you are able to spot that specific dependency, you can exclude the respective artifactId like below (instead of specifying the required dependencies which usually is huge list)

Vijayalakshmi_S_0-1618182318027.png

If you still face trouble with maven-bundle-plugin configuration, try the below. 

 

I just came across this KB link from Adobe Helpx which has CQ package containing OSGI bundle of CXF version 2.3.0

Details for the same - https://helpx.adobe.com/experience-manager/kb/jaxws-webservice-calls-not-working-aem-65.html

  • Revoke all the changes done as part of this (In particular, maven-bundle-plugin bring it back to last PROD version)
  • Install the CXF OSGI bundle which is available as CQ package in above link (via Package Manager of your local AEM instance)
  • Deploy your code base -> CXF related dependency that you are using in your code should be resolved with help of package that we deployed in previous step.

Avatar

Level 2

Thank you Lakshmi, I installed bundle for CXF (https://helpx.adobe.com/experience-manager/kb/jaxws-webservice-calls-not-working-aem-65.html) too but now it is giving null reference exception on line

ServiceXML serviceXml = new ServiceXML(wsdlURL, SERVICE_NAME);

Avatar

Level 2

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

Avatar

Community Advisor

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. 

Avatar

Level 2

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>