虽然JAR存在,但是找不到类

问题描述 投票:0回答:1

我正在使用web-inf \ lib中的一堆JAR文件将web应用程序部署到weblogic。当我从servlet中的这些jar文件中的类调用许多方法时 - 一切正常。但是我也有一个RMI客户端jar - 当我调用它的一个方法时 - 它给了我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中非常存在

注1:如果我尝试使用Class.forName("com.xyz.RMIClientImpl")自己加载课程,它工作正常。

所以与类加载和RMI相关的东西 - 如果有人可以解释发生的事情会很棒。

注意2:如果我尝试独立客户端(不是Web应用程序)并调用RMI客户端,则工作正常 - 因此问题仅在部署到应用服务器时(weblogic)

注3:我从我的应用程序的lib文件夹中复制了所有的jar并将它们放在weblogic的库中,然后我没有得到这个异常。是的我知道这不是解决问题的正确方法,但请指出我正确的方向:)

注意4:设置以下内容也没有帮助:

<wls:container-descriptor><wls:prefer-web-inf-classes>true</wls:prefer-web-inf-classes></wls:container-descriptor>
java weblogic classloader rmi
1个回答
0
投票

试试这个 !您需要显式地将jar添加到类路径中。右键单击项目名称 - >项目属性 - >库和类路径 - >添加jar /目录

© www.soinside.com 2019 - 2024. All rights reserved.