我正在使用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")
答案 0 :(得分:0)
试试看!您需要将jar显式添加到类路径。 右键单击项目名称->项目属性->库和类路径->添加jar /目录