【问题标题】:ClassNotFoundException when loading Applet in Java Web Application在 Java Web 应用程序中加载 Applet 时出现 ClassNotFoundException
【发布时间】:2013-07-25 12:27:48
【问题描述】:

我正在尝试用一个非常简单的小程序部署 Java Web 应用程序(Spring、Hibernate、Maven、Tomcat、WinXp),但是当我用这个小程序打开 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);
    }
}

ma​​in.jsp:

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

我尝试将 codebase 属性更改为:

  • “类”
  • “/类”
  • ""
  • 删除此属性

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

【问题讨论】:

  • "..with a very simple applet," 没有这样的野兽。至少在部署它们时不是,正如您已经开始发现的那样。

标签: java jsp applet classnotfoundexception


【解决方案1】:

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

您可以 jar 小程序工作所需的所有类,并将 JAR 文件放在 views 文件夹中。你的小程序标签看起来像

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

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

【讨论】:

  • 我用applet类制作了jar文件,将其替换为resources文件夹,将archive="resources/myApplet.jar"属性添加到&lt;applet&gt;标签,它就可以工作了!谢谢!
  • 没问题,Пожалуйста :)
  • 谢谢,其他答案有codebase 属性而不是archive,这改变了它对我有用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-01-08
  • 2016-10-05
  • 2011-09-20
  • 1970-01-01
  • 2012-03-09
  • 2011-08-28
  • 1970-01-01
相关资源
最近更新 更多