Skip to main content
trc41594544
New Participant
July 9, 2018

NoClassDefFoundError in AEM

  • July 9, 2018
  • 6 replies
  • 10036 views

Hi,

I am working on custom Sling Filter in AEM 6.2 SP1. I am running in to issue where i am getting runtime whenever i upload my project JAR for one service.

The error is :

Error during instantiation of the implementation object (java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest)

java.lang.NoClassDefFoundError: javax/servlet/http/HttpServletRequest

  at java.lang.Class.getDeclaredConstructors0(Native Method)

  at java.lang.Class.privateGetDeclaredConstructors(Class.java:2671)

  at java.lang.Class.getConstructor0(Class.java:3075)

  at java.lang.Class.newInstance(Class.java:412)

.

.

.

Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest not found by com.*.*.core [1423]

  at org.apache.felix.framework.BundleWiringImpl.findClassOrResourceByDelegation(BundleWiringImpl.java:1574)

  at org.apache.felix.framework.BundleWiringImpl.access$400(BundleWiringImpl.java:79)

  at org.apache.felix.framework.BundleWiringImpl$BundleClassLoader.loadClass(BundleWiringImpl.java:2018)

I do not have any issues while compiling the project. It complies with out a problem. I am having javax.servlet as a dependency in POM. I tried with different versions of that also. I am running in to this issue every time i install jar in publish or author instance.

Any ideas or help would be appreciated.

Thanks

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

6 replies

akhoury
Employee
July 11, 2018

Is your jar file an OSGi bundle?

If so what do you have defined as the Bundle-SymbolicName?  You can get the Bundle-SymbolicName from the META-INF/MANIFEST.MF file in the jar file.

The reason I ask is because com.*.*.core is weird in this error message:

Caused by: java.lang.ClassNotFoundException: javax.servlet.http.HttpServletRequest not found by com.*.*.core [1423]

Employee
July 9, 2018

trc41594544

You have to ensure that the dependency javax.servlet.http.httpservletrequest is available in AEM. For this, go to /system/console/depfinder and search for javax.servlet.http.httpservletrequest and see which bundle exports it. You can then update you dependency accordingly and try re-uploading your jar.

Regards,

Aneet Arora

smacdonald2008
New Participant
July 10, 2018

AEM does not expose that Java package --

trc41594544
New Participant
July 10, 2018

Hi,

Can you let me know what can be done then? I am not sure how to proceed with this.

Thanks