Your achievements

Level 1

0% to

Level 2

Tip /
Sign in

Sign in to Community

to gain points, level up, and earn exciting badges like the new
Bedrock Mission!

Learn more

View all

Sign in to view all badges

SOLVED

AEM/CQ - javax.xml.namespace can't resolve OSGI dependency

Avatar

Level 2

'm using AEM 6.2 and I'm currently implementing WebService. I included all dependency jars in OSGI bundle which I created externally and all dependency issue got resolved except one:

javax.xml.namespace,version=[1.0,2) -- Cannot be resolved

When I checked in the maven using depfinder tool, it showed me as below:

<dependency> <groupId>org.apache.sling</groupId> <artifactId>org.apache.sling.fragment.ws</artifactId> <version>1.0.2</version> <scope>provided</scope> </dependency>

However, in my other custom project, the javax.xml.namespace is showing resolved state.

I'm stuck in this situation and any pointers will be really appreciated.

Thanks, Jineet

1 Accepted Solution

Avatar

Correct answer by
Level 10

You should be using the Dependency finder that i referenced in this thread and then get that into you Dependencies section of your POM. For AEM 6.2 - see this:

dd1.png

View solution in original post

17 Replies

Avatar

Employee Advisor

Can you please post relevant import statements of the bundle, which does not resolve? Can you also check your error.log file if there is a statement about this sling fragment?

kind regards,
Jörg

Avatar

Level 10

In your bundle that does resolve - are you referencing same version. Looks like a version conflict.

Avatar

Level 10

Also use the Dependency Finder in AEM to see what version AEM has installed. For information about the Dep Finder - see The Real CQ: CQ5/AEM How do I find out exactly which maven dependency I need?

Avatar

Level 2

Error log:
5.06.2017 23:11:22.800 *ERROR* [qtp110252325-58675] org.apache.felix.http.jetty %bundles.pluginTitle: Cannot start (org.osgi.framework.BundleException: Unable to resolve com.xyz.cq.support.core [515](R 515.2): missing requirement [com.xyz.cq.support.core [515](R 515.2)] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.namespace)(version>=1.0.0)(!(version>=2.0.0))) Unresolved requirements: [[com.xyz.cq.support.core [515](R 515.2)] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.namespace)(version>=1.0.0)(!(version>=2.0.0)))])

org.osgi.framework.BundleException: Unable to resolve com.xyz.cq.support.core [515](R 515.2): missing requirement [com.xyz.cq.support.core [515](R 515.2)] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.namespace)(version>=1.0.0)(!(version>=2.0.0))) Unresolved requirements: [[com.xyz.cq.support.core [515](R 515.2)] osgi.wiring.package; (&(osgi.wiring.package=javax.xml.namespace)(version>=1.0.0)(!(version>=2.0.0)))]

Avatar

Level 2

The bundle which resolves:
javax.xml.namespace,version=0.0.0.fragment_xml from org.apache.felix.framework (0)
The bundle which doesn't resolve:
javax.xml.namespace,version=[1.0,2) -- Cannot be resolved

Avatar

Level 10

What AEM version are you using?

If you are using AEM 6.2 - you should be using Maven Archetype 10 and AEM uber 6.2 JAR to resolve the dependencies. See this article --

Scott's Digital Community: Creating your first AEM 6.2 Project using Adobe Maven Archetype 10

Avatar

Level 2

Thanks smacdonald2008​, I did find the dependency by entering javax.xml.namespace and below is the result returned:

Package: javax.xml.namespace

Version: 0.0.0.fragment_xml

Exported by: org.apache.felix.framework (0)

Maven dependency:

<dependency>

     <groupId>org.apache.sling</groupId>

     <artifactId>org.apache.sling.fragment.ws</artifactId>

     <version>1.0.2</version>

     <scope>provided</scope>

</dependency>

And in my bundle: it is showing me this - javax.xml.namespace,version=[1.0,2) -- Cannot be resolved

If this is an version issue, can you please tell me what I should I do to make this package resolved?

Many thanks,Jineet

Avatar

Employee Advisor

Hi,

There's a version mismatch, so it looks like you compile against a wrong version of the AEM uber jar. What version of the uber.jar are you using and what version of AEM are you targetting? Or: what version of the AEM archetype are you using?

regards,

Jörg

Avatar

Level 10

Here is a tip (but you would need to do it each time you build the bundle) - open the bundle in ZIP tool. Open the  Manifest file.

Remove the version information beside the package - then it will pick up the available version in AEM.

package.png

Avatar

Employee Advisor

Hi Scott,

this doesn't help if you need to do it again and again after every build 🙂

Avatar

Level 10

I have done this from time to time when i need to get it to work But correct - the ideal way is to get it correct in the POM file!

Avatar

Level 2

smacdonald2008 What should be the dependency added in pom.xml to make it pick appropriate version?

Avatar

Correct answer by
Level 10

You should be using the Dependency finder that i referenced in this thread and then get that into you Dependencies section of your POM. For AEM 6.2 - see this:

dd1.png

Avatar

Level 2

smacdonald2008​, I found that if I include org.apache.axis2 dependency, the bundle shows unresolved for javax.xml.namespace. But on removing org.apache.axis2 dependency, the bundle goes in resolved state.

I'm implementing web service using Apache Axis 2 and I need to use this dependency for my project work.

Not sure what conflict it is creating with Apache Axis 2 API.

Thanks,

Jineet

Avatar

Level 1

@jineetv21622325 , I also faced similar error while upgrading from AEM 6.3 to 6.5 SP4. 

 

Error Log -

24.03.2020 15:09:40.573 *ERROR* [qtp1041007297-2360] org.apache.felix.http.jetty %bundles.pluginTitle: 
Cannot start (org.osgi.framework.BundleException: Unable to resolve com.XXX.XXXX.XXX [590](R 590.0):
missing requirement [com.XXX.XXX.XXX [590](R 590.0)] osgi.wiring.package;
(&(osgi.wiring.package=javax.xml.namespace)(version>=0.0.0)(!(version>=1.0.0)))
Unresolved requirements: [[com.XXX.XXX.XXX [590](R 590.0)]
osgi.wiring.package; (&(osgi.wiring.package=javax.xml.namespace)(version>=0.0.0)(!(version>=1.0.0)))])
org.osgi.framework.BundleException: Unable to resolve com.XXX.XXX.XXX [590](R 590.0): missing requirement

 

Reason - 

As you see in the error log above, Bundle Exception is due to failed OSGI Wiring. Version of javax.xml.namespace is not suffiecient or compatible enough. 

 

Solution -