2011-03-26 52 views
0

我越来越有“ClassNotFoundException的”相关,当我试图通过一个Struts Web项目中使用JSP文件中标记加载的applet令人沮丧的错误:小程序加载错误

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文件中的小程序代码:

<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> 

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

任何遇到此问题的人都可以与我分享他/她的观点吗?有没有解决这个问题的方法?任何有关如何在Struts Web项目中使用applet的建议也是值得欢迎的。

回答

1

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

获得某些工作的最快路径是完全省略codebase参数,并将AudioApplet.class放在与jsp相同的目录中。看下面的例子:

<jsp:plugin type="applet" 
       code="AudioApplet.class" 
       width="500" 
       height="500" 
       align="middle"/> 
+0

我试过你的建议,但它不工作不幸。我通过尝试按照您的建议方式更新了我的问题条目。问候。 – Juvanis 2011-03-28 12:45:03

+0

我添加了我在尝试解决方案时使用的代码。它看起来与你的有点不同,所以希望这会让你得到你需要的地方:-) – Nate 2011-04-04 01:02:53