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.
Solved! Go to Solution.
Views
Replies
Total Likes
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.
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.
@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
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
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>
....
@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>
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>
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 @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)
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
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);
Hi @touseefkhan4pk,
Is it possible for you to share the full error trace.
@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>
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.
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>