1

我已经签署了我的小程序,它在罐子里。

我在我的jsp中添加了以下代码以嵌入小程序

 <applet name="viewerApplet" id="TViewerApplet" width="100%" height="500" code="TViewerApplet.class" codebase="/WEB-INF/lib" mayscript="mayscript" archive="C:/Eclipse_Workspace/Velocity/BSLI_MIS_VELOCITY/WebContent/WEB-INF/lib/SSignedTAppletViewer.jar">  

但我得到以下异常

java.net.MalformedURLException: unknown protocol: c

编辑:现在我正在使用

<applet name="viewerApplet" id="TViewerApplet" width="100%" height="500" code="TViewerApplet.class" align="baseline" codebase="." mayscript="mayscript" archive="SSignedTAppletViewer.jar,cmbview81.jar">

新的异常加载:找不到类 TViewerApplet.class。

java.lang.ClassNotFoundException: TViewerApplet.class
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Unknown Source)
    at sun.plugin2.applet.Plugin2ClassLoader.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://10.160.118.171:8086/BSLI_MIS_VELOCITY/TViewerApplet/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)
    ... 9 more
Exception: java.lang.ClassNotFoundException: TViewerApplet.class
4

1 回答 1

2
archive="C:/Eclipse_Workspace/Velocity/BSLI_MIS_VELOCITY/WebContent/WEB-INF/lib/SSignedTAppletViewer.jar"

这有两个问题。

  1. archive 属性是代码库的相对路径(HREF),而它指向文件路径(而不是file:基于 URL - 因此unknown protocol: c)。但是使用相对路径。
  2. /WEB-INF/lib/通常为服务器保留,没有公共访问权限。你需要把罐子放在别的地方。我一般用/lib/.

更新

  1. TViewerApplet 在 SSignedTAppletViewer.jar 中
  2. 是的,它在包 com.mind 中
  3. 现在 jar 位于 jsp 所在的同一文件夹中
  4. 我已经检查了 jar -tvf ,类在 jar 中

好的。将所有这些放在一起会产生一个像这样的小程序元素:

<applet
    name="viewerApplet"
    id="TViewerApplet"
    width="100%"
    height="500"
    code="com.mind.TViewerApplet"
    align="baseline"
    codebase="."
    mayscript="mayscript"
    archive="SSignedTAppletViewer.jar,cmbview81.jar">
</applet>

唯一的变化是在code属性中,从TViewerApplet.classcom.mind.TViewerApplet-.class不是必需的,但包是。

于 2012-06-15T10:43:05.637 回答