我正在尝试使用一个非常简单的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可以正常工作。
答案 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文件是一种更简洁的部署方式。