Java JRE 1.7.0_51-b13和签名小程序

Java JRE 1.7.0_51-b13和签名小程序,java,applet,manifest,signed-applet,Java,Applet,Manifest,Signed Applet,我买了一个可信的证书来对我的小程序进行签名,以防止Oracle JRE(1.7.0.51)的最新版本中出现警告和问题 一切正常,除了一个同时使用外部jar的小程序(特别是axis2-1.5.4.jar) 我也用我的新证书签署了这个jar,但我总是获得: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis2/databinding/ADBBean at com.sun.deploy.uitoolki

我买了一个可信的证书来对我的小程序进行签名,以防止Oracle JRE(1.7.0.51)的最新版本中出现警告和问题

一切正常,除了一个同时使用外部jar的小程序(特别是axis2-1.5.4.jar)

我也用我的新证书签署了这个jar,但我总是获得:

java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/apache/axis2/databinding/ADBBean
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.instantiateApplet(Unknown Source)
at sun.plugin2.applet.Plugin2Manager.initAppletAdapter(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)

Caused by: java.lang.NoClassDefFoundError: org/apache/axis2/databinding/ADBBean
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader.access$100(Unknown Source)
at sun.plugin2.applet.Plugin2ClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin2.applet.Plugin2ClassLoader.findClassHelper(Unknown Source)
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 java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Unknown Source)
at java.lang.Class.getConstructor0(Unknown Source)
at java.lang.Class.newInstance(Unknown Source)
at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter$1.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$200(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Caused by: java.lang.ClassNotFoundException: org.apache.axis2.databinding.ADBBean
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)
... 42 more
在小程序加载期间。怎么了

更新:这是我的小程序代码

<object width="200" height="200" code="AeDPeA2WS.class"    CODEBASE="/<path>/AeDPeA2WS/$FILE" name="AeDPeA2WS">
<param name="CODEBASE" value="/<path>/AeDPeA2WS/$FILE">
<param name="code" value="AeDPeA2WS.class">
<param name="name" value="AeDPeA2WS">
<PARAM NAME="MAYSCRIPT" VALUE="true">

<param name="archive" value="AeDPeA2WS.jar,axis2-kernel-1.4.1.jar,axis2-1.5.4.jar,activation-1.1.jar,axiom-api-1.2.10.jar,axis-wsdl4j-1.2.jar,backport-util-concurrent-3.1.jar,axiom-dom-1.2.10.jar,axiom-impl-1.2.10.jar,commons-codec-1.4.jar,commons-httpclient-3.1.jar,commons-logging-1.1.1.jar,mail-1.4.jar,neethi-2.0.4.jar,woden-api-1.0M8.jar,XmlSchema-1.4.3.jar">
这是这样定义的:

    public static class Base64Binary implements org.apache.axis2.databinding.ADBBean{
    ......

这给了我一个例外:有什么想法吗?

找到了解决方案。我错过了添加外部JAR以显示以下内容:

Trusted-Library: true

您是否在小程序的jnlp文件中正确定义了
codebase
属性?您的问题不是因为签名,而是类路径问题。顺便说一下,将jnlp文件内容添加到post.my applet代码中,作为主要问题中的更新。属性值
codebase
应指向包含所需所有JAR的目录。什么是文件?文件定义在哪里?有关详细信息,请参见。MockerTim是正确的,仅作为参考。在使用新证书签名之前,使用旧的JRE,一切都很好。如果我降级JRE版本,使用相同的新签名jar文件,一切都正常。没问题。非常令人沮丧!!!您是如何添加此属性的?您是否直接获取.MF文件并添加此属性?我试过这样做,但没有成功。它说:清单格式无效。我的清单如下所示:清单版本:1.0创建人:1.6.0_05(Sun Microsystems Inc.)名称:HelloWorld.class SHA1摘要:asfdasfdsadf=Name:HelloWorld$1.class SHA1摘要:asdfsafd=Trusted Library:True可能是清单文件编码问题。看看这里,Andrea:我也试着用m选项来修改.MF文件。我可以添加属性,但我得到了相同的错误:清单格式无效。例外。!但是,对于Java次要版本更新51以后的版本,这个最可靠的库属性不是必需的。Manifest.MF必须具有2个属性。代码库:<要在其上部署jar的位置/主机名>权限:两个值之一(沙盒或所有权限)
Trusted-Library: true