Struts Web项目中的Applet加载错误

时间:2011-03-26 07:16:57

标签: java jsp applet struts

当我尝试通过在Struts Web项目中的JSP文件中使用标记来加载applet时,我遇到了与“ClassNotFoundException”相关的令人沮丧的错误:

load: class com.superdeporter.audio.AudioApplet.class not found.
java.lang.ClassNotFoundException: com.superdeporter.audio.AudioApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadCode(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager.createApplet(Unknown Source)
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: open HTTP connection failed:http://localhost:8080/SampleAudioApplication/com/superdeporter/audio/AudioApplet/class.class
    at sun.plugin2.applet.Applet2ClassLoader.getBytes(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader.access$000(Unknown Source)
    at sun.plugin2.applet.Applet2ClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)

这是JSP文件中的applet代码:

<jsp:plugin type="applet" name="AudioApplet"
    code="AudioApplet.class" codebase="/com/superdeporter/audio" width="100"
    height="100" align="middle" jreversion="1.5"
    archive="">
</jsp:plugin>

这似乎是一个奇怪的问题。顺便说一句,让我说我已经尝试了许多代码和代码库参数的组合,我仍然得到相同的错误。据我所知, code 参数应该具有Applet类的名称作为值,而 codebase 参数应该具有该applet类的包路径作为值。我错了吗?

遇到此问题的人是否可以与我分享他/她的意见?有这个问题的解决方案吗?关于如何在Struts Web项目中使用applet的任何建议也是受欢迎的。

1 个答案:

答案 0 :(得分:1)

codebase参数实际上是服务器上applet类文件相对于调用applet的jsp页面的位置。 applet类需要位于可公开访问的目录中,因此标准/ WEB-INF / classes目录将不起作用。

获得工作的最快途径是完全省略codebase参数,只需将AudioApplet.class放在与jsp相同的目录中即可。请参阅下面的示例:

    <jsp:plugin type="applet" 
                code="AudioApplet.class" 
                width="500" 
                height="500" 
                align="middle"/>
相关问题