尽管存在JAR,但找不到类异常

时间:2019-02-28 02:04:49

标签: java weblogic classloader rmi

我正在使用web-inf \ lib中的一堆JAR文件将Web应用程序部署到weblogic。 当我从servlet的这些jar文件中的类调用许多方法时,一切正常。 但是,我也有一个RMI客户端jar-当我调用其方法之一时-它会给我 this.Wrapper.Controls.Clear(); this.Wrapper.Visible = true; FrmCompany frm = new FrmCompany() { Width = this.Wrapper.Width, Height = this.Wrapper.Height, TopLevel = false, AutoScroll = true, ControlBox = false, Dock = DockStyle.Fill, WindowState = FormWindowState.Maximized, Style = MetroColorStyle.Default }; this.Wrapper.Controls.Add(frm); frm.Left = 0; frm.Top = 0; frm.Show();

ClassNotFoundException

我不太了解应用程序服务器中的类加载,但是从stacktrace可以清楚地看到一些rmi类加载器正在尝试加载类,但找不到它-尽管它在我的web-inf / lib中非常存在

注意1 : 如果我尝试自己使用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) 加载类,则效果很好。

所以与类加载和RMI有关的事情-如果有人可以解释正在发生的事情,那就太好了。

NOTE2 : 如果我尝试使用独立的客户端(而不是Web应用程序)并调用RMI Client,则一切正常-因此,问题仅在部署到应用程序服务器(weblogic)时才会发生

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

注意4 : 设置以下内容也无济于事:

Class.forName("com.xyz.RMIClientImpl")

1 个答案:

答案 0 :(得分:0)

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