NoClassDefFoundError in AEM | Community
Skip to main content
trc41594544
Level 3
Jul 9, 2018 9:31 PM UTC

NoClassDefFoundError in AEM

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
Jul 11, 2018 11:09 PM UTC

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]

Translate
Employee
Jul 9, 2018 11:00 PM UTC

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

Translate
smacdonald2008
Level 10
Jul 10, 2018 12:36 AM UTC

AEM does not expose that Java package --

Translate
trc41594544
Level 3
Jul 10, 2018 2:50 AM UTC

Hi,

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

Thanks

Translate