# Classloading question

**URL:** <https://forum.payara.fish/t/classloading-question/1639>\
**Category:** Technical Discussion\
**Created:** [February 13, 2025, 7:06am UTC](https://forum.payara.fish/t/classloading-question/1639 "2025-02-13T07:06:53Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![eduarddrenth](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.payara.fish/eduarddrenth/32/53_2.png) [@eduarddrenth](https://forum.payara.fish/u/eduarddrenth)\
**Post date:** [February 13, 2025, 7:06am UTC](https://forum.payara.fish/t/classloading-question/1639/1 "2025-02-13T07:06:53Z")

</div>

Dear all,

Can somebody pease explain what happens in the situation I describe below?

- war on payara/server-web:6.2024.12-jdk17
- class1 in a jar in lib/applibs
- class1 implements interface class2 which is in the war
- class3 in the war calls ServiceLoader.load(class1)
- ClassNotFoundException class2 is not found

I would expect class2 can be found, because it is in the war.

In the stacktrace I can see ServiceLoader.load is using WebappClassLoader.

Am I missing something?

Regards, Eduard

---

<div class="post-metadata">

**Author:** ![bdrx](https://avatars.discourse-cdn.com/v4/letter/b/2bfe46/32.png) [@bdrx](https://forum.payara.fish/u/bdrx)\
**Post date:** [February 17, 2025, 11:01pm UTC](https://forum.payara.fish/t/classloading-question/1639/2 "2025-02-17T23:01:37Z")

</div>

Have a look at [Enhanced Classloading :: Payara Community Documentation](https://docs.payara.fish/community/docs/5.2022.4/Technical%20Documentation/Payara%20Server%20Documentation/Server%20Configuration%20And%20Management/Classloading/Enhanced%20Classloading.html)

---

<div class="post-metadata">

**Author:** ![eduarddrenth](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.payara.fish/eduarddrenth/32/53_2.png) [@eduarddrenth](https://forum.payara.fish/u/eduarddrenth)\
**Post date:** [February 18, 2025, 10:23am UTC](https://forum.payara.fish/t/classloading-question/1639/3 "2025-02-18T10:23:36Z")

</div>

Did that already, does not help me with this one. Do you think something special needs to be configured when using ServiceLoader.load?

---

<div class="post-metadata">

**Author:** ![paubrecht](https://avatars.discourse-cdn.com/v4/letter/p/ecae2f/32.png) [@paubrecht](https://forum.payara.fish/u/paubrecht)\
**Post date:** [February 18, 2025, 10:00pm UTC](https://forum.payara.fish/t/classloading-question/1639/4 "2025-02-18T22:00:11Z")

</div>

Hi [eduarddrenth](https://forum.payara.fish/u/eduarddrenth),  
Your war is using a library. A class in the library extends a class, which is in your war.

In the Payara documentation, I see a comment about applibs:

[https://docs.payara.fish/community/docs/Technical%20Documentation/Application%20Development/Class%20Loaders.html](https://docs.payara.fish/community/docs/Technical%20Documentation/Application%20Development/Class%20Loaders.html)

> Note: When multiple deployed applications use the same library, they share the same instance of the library. One library cannot reference classes from another library.

This looks exactly like your situation.

My suggestion is to keep the dependencies war → jar.

Petr

---

<div class="post-metadata">

**Author:** ![eduarddrenth](https://dub1.discourse-cdn.com/flex017/user_avatar/forum.payara.fish/eduarddrenth/32/53_2.png) [@eduarddrenth](https://forum.payara.fish/u/eduarddrenth)\
**Post date:** [February 19, 2025, 6:00am UTC](https://forum.payara.fish/t/classloading-question/1639/5 "2025-02-19T06:00:21Z")

</div>

That may be it yes and makes sense. I’ll stick to including these libs in WEB-INF/lib. Thanks
