本人是javaapplet新手,但是由于工作需要接触了applet数字签名。并且遇到了下面的问题,希望各位能帮忙解答一下。applet数字签名
//源码档HelloWorld.java
importjava.applet.*;
import
java.awt.*;
publicclass
HelloWorld
extendsApplet
{
publicvoid
paint(Graphicsg)
{
g.drawString("你好,Java世界!",2,20);
}
}
javac*.java//编译.java得到HelloWorld.class在没数字签名前可以运行在网页中
jarcfvhello.jarHelloWorld.class//打包jar成功
"c:\java\jdk\jarsigner"-keystoref:\applet\testKeyhello.jartest//签名也是成功的
//由testKey产生的证书也已经成功导入信任库中了
//html档
<html>
<head>
<metahttp-equiv="Content-Type"content="text/html;charset=GB2312">
<title>
HTMLTestPage
</title>
</head>
<body>
<href>
<applet
archive="hello.jar"
code="HelloWorld.class"
codebase=""
>
</applet>
</body>
</html>
在本地机子上就出现了,不能显示“你好,Java世界”错误。
java控制台输出的log如下:
basic:Dialogtypeisnotcandidateforembedding
security:使用者僅對此階段作業的程式碼授予權限
security:正在部署階段作業憑證儲存庫中儲存憑證
security:已在部署階段作業憑證儲存庫中儲存憑證
network:找不到快取項目[url:file:/F:/applet/helloworld/hello.jar,版本:null]
network:找不到快取項目[url:file:/F:/applet/helloworld/hello.jar,版本:null]
network:找不到快取項目[url:file:/F:/applet/helloworld/hello.jar,版本:null]
network:找不到快取項目[url:file:/F:/applet/helloworld/hello.jar,版本:null]
security:使用CertPathAPI驗證憑證鏈
basic:Plugin2ClassLoader.getPermissionsCeilingPolicyallPerms
security:SHA-256Certificatefingerprint:F0C2968F49F2AAB1986702E0F65199F26E447FDEEACBB2E20763A8E7BA00C3B6
security:正在檢查憑證是否在InternetExplorerDISALLOWED憑證儲存庫中
security:正在檢查憑證是否在InternetExplorerTrustedPublisher憑證儲存庫中
network:找不到快取項目[url:file:/F:/applet/helloworld/hello.jar,版本:null]
basic:異常狀況:java.lang.reflect.InvocationTargetException。
java.lang.RuntimeException:java.lang.reflect.InvocationTargetException
atsun.plugin2.applet.Plugin2ClassLoader.defineClassHelper(UnknownSource)

atsun.plugin2.applet.Plugin2ClassLoader.access$100(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader$2.run(UnknownSource)
atjava.security.AccessController.doPrivileged(NativeMethod)
atsun.plugin2.applet.Plugin2ClassLoader.findClassHelper(UnknownSource)
atsun.plugin2.applet.Applet2ClassLoader.findClass(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader.loadClass0(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader.loadClass(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader.loadClass(UnknownSource)
atjava.lang.ClassLoader.loadClass(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader.loadCode(UnknownSource)
atsun.plugin2.applet.Plugin2Manager.initAppletAdapter(UnknownSource)
atsun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(UnknownSource)
atjava.lang.Thread.run(UnknownSource)
Causedby:java.lang.reflect.InvocationTargetException
atsun.reflect.NativeMethodAccessorImpl.invoke0(NativeMethod)
atsun.reflect.NativeMethodAccessorImpl.invoke(UnknownSource)
atsun.reflect.DelegatingMethodAccessorImpl.invoke(UnknownSource)
atjava.lang.reflect.Method.invoke(UnknownSource)
...14more
Causedby:java.lang.NullPointerException
atsun.plugin2.applet.Plugin2ClassLoader.loadAllowedCodebases(UnknownSource)
atsun.plugin2.applet.Plugin2ClassLoader.getPermissions(UnknownSource)
atsun.plugin2.applet.Applet2ClassLoader.getPermissions(UnknownSource)
atjava.security.SecureClassLoader.getProtectionDomain(UnknownSource)
atjava.security.SecureClassLoader.defineClass(UnknownSource)
atjava.net.URLClassLoader.defineClass(UnknownSource)
...18more
basic:移除進度監聽器:sun.plugin.util.ProgressMonitorAdapter@9fae74
security:重設拒絕階段作業憑證儲存庫
由于新手看不懂这些,而且今后也不太可能用到,也就是暂时性的。所以在这请各位帮帮忙解决一下。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-27894-1.html
太牛叉了