Проблема с загрузчиком классов - PullRequest
0 голосов
/ 07 февраля 2020

Я пытаюсь переместить устаревшее приложение (ушное приложение) из Websphere на свободу.

Однако при запуске я получаю много ошибок "ClassNotFound", таких как

        Caused by: java.lang.NoClassDefFoundError: com.abc.utilities.BaseServletFil
        at java.lang.ClassLoader.defineClassImpl(Native Method)
        at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:397)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:358)
        at com.ibm.ws.classloading.internal.AppClassLoader.definePackageAndClass(AppClassLoader.java:375)
        at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:285)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:943)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:888)
        at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:535)
        at com.ibm.ws.classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:495)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
        at com.ibm.ws.classloading.internal.UnifiedClassLoader.findClass(UnifiedClassLoader.java:127)
        at 
    com.ibm.ws.classloading.internal.ThreadContextClassLoader.findClass(ThreadContextClassLoader.java:138)
        at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:943)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:888)
    at com.ibm.ws.classloading.internal.UnifiedClassLoader.loadClass0(UnifiedClassLoader.java:113)
    at com.ibm.ws.classloading.internal.UnifiedClassLoader$Delegation.loadClass(UnifiedClassLoader.java:82)
    at com.ibm.ws.classloading.internal.UnifiedClassLoader.loadClass(UnifiedClassLoader.java:106)
    at com.ibm.ws.classloading.internal.ThreadContextClassLoader.loadClass(ThreadContextClassLoader.java:154)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
    at com.ibm.ws.webcontainer.filter.WebAppFilterManager._loadFilter(WebAppFilterManager.java:588)
    ... 17 more
Caused by: java.lang.ClassNotFoundException: 
com.abc.utilities.BaseServletFil
    at com.ibm.ws.classloading.internal.AppClassLoader.findClassCommonLibraryClassLoaders(AppClassLoader.java:557)
    at com.ibm.ws.classloading.internal.AppClassLoader.findClass(AppClassLoader.java:288)
    at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:943)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:888)
    at com.ibm.ws.classloading.internal.AppClassLoader.findOrDelegateLoadClass(AppClassLoader.java:535)
    at com.ibm.ws.classloading.internal.AppClassLoader.loadClass(AppClassLoader.java:495)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:871)
    ... 37 more

Определен BaseServletFil в ab c .jar, который не входит в ухо

Чтобы устранить ошибку, я добавил следующую конфигурацию на сервер. xml

<application id="ABC_EJBEAR" location="abcuiejb.ear" name="ABC_EJBEAR">
<classloader>
<privateLibrary>
<fileset dir="${server.config.dir}/myLibrary" includes="*.jar" scanInterval="5s" />
</privateLibrary>
</classloader>
</application>

Каталог myLibrary создан на wlp \ usr \ servers \ server1 \ myLibrary и содержит ab c .jar.

Любые указатели при устранении этой ошибки будут полезны. Также, как устранить проблемы с загрузкой классов (для сторонних jar-файлов, таких как apache commons)

...