класс не найден, хотя JAR существует - PullRequest
0 голосов
/ 28 февраля 2019

Я развертываю веб-приложение в weblogic с кучей JAR-файлов в web-inf \ lib.Когда я вызываю ряд методов из классов в этих jar-файлах в моем сервлете - все работает отлично.Однако у меня также есть JAR-клиент RMI - и когда я вызываю один из его методов - он дает мне ClassNotFoundException:

Caused By: java.lang.ClassNotFoundException: com.xyz.RMIClientImpl 
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:393)
    at sun.rmi.server.LoaderHandler.loadClass(LoaderHandler.java:185)
    at java.rmi.server.RMIClassLoader$2.loadClass(RMIClassLoader.java:637)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:219)
    at java.rmi.server.RMIClassLoader.loadClass(RMIClassLoader.java:152)

Я не совсем понимаю загрузку классов на сервере приложений, но из stacktrace ясно видно, чтокакой-то загрузчик классов rmi пытается загрузить класс и не находит его - хотя он очень присутствует в моем web-inf / lib

NOTE1 : если я пытаюсь загрузить класс самостоятельно, используяClass.forName("com.xyz.RMIClientImpl") все работает отлично.

Так что что-то, связанное с загрузкой классов и RMI - если кто-то сможет объяснить, что происходит, было бы замечательно.

NOTE2 : Если я попробуюавтономный клиент (не веб-приложение) и вызов клиента RMI, все работает нормально, поэтому проблема возникает только при развертывании на сервере приложений (weblogic)

NOTE3 : я скопировал все своифляги из папки lib моего приложения и поместили их в библиотеку weblogic, и тогда я не получил это исключение.Да, я знаю, что это не правильный способ решения проблемы, но тогда, пожалуйста, укажите мне правильное направление:)

NOTE4 : настройка следующего также не помогла:

<wls:container-descriptor><wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes></wls:container-descriptor>

1 Ответ

0 голосов
/ 28 февраля 2019

Попробуй это!Вам нужно явно добавить jar в classpath.щелкните правой кнопкой мыши имя проекта -> Свойства проекта -> Библиотека и путь к классам -> Добавить jar / directory

...