在Java Web应用程序中加载Applet时出现ClassNotFoundException

时间:2013-07-25 14:31:11

标签: java jsp applet classnotfoundexception

我正在尝试使用一个非常简单的applet部署Java Web应用程序(Spring,Hibernate,Maven,Tomcat,WinXp),但是当我用这个applet打开jsp页面时,我看到 ClassNotFountException 错误。

我的项目结构(已部署):

myApp     
|--META-INF
|--WEB-INF
   |--classses
      |--ru
         |--mydomain
            |--applet
               |--FileChooserApplet.class
   |--views
      |--main.jsp
      |--index.html
|--resources

FileChooserApplet.class

package ru.mydomain.applet;

import java.applet.Applet;

public class FileChooserApplet extends Applet {

    @Override
    public void paint(java.awt.Graphics g) {
        g.drawString("Weather is good!", 70, 70);
    }
}

main.jsp中:

...
<body>
   <APPLET code="ru.mydomain.applet.FileChooserApplet.class"
           codebase="../classes" width=350 height=200></APPLET>
...
</body>
..

我尝试将 codebase 属性更改为:

  • “课程”
  • “/类”
  • “”
  • 删除此属性

但是, 如果我将applet的相同代码添加到 index.html 并双击此文件(浏览器中的URL以file:///C:/projects/myApp/target/myApp/...开头),则applet可以正常工作。

1 个答案:

答案 0 :(得分:4)

AFAIK小程序无法访问WEB-INF/classes中的类文件。这些类只能由服务器端资源(如servlet)访问(与可下载/静态内容相对)。

您可以运行applet所需的所有类,并将JAR文件放在views文件夹中。您的applet标记看起来像

<APPLET code="ru.mydomain.applet.FileChooserApplet.class" 
        archive="mynewjar.jar"
        width=350 height=200>
</APPLET>

单个JAR文件是一种更简洁的部署方式。