2013-08-29 86 views
2

我写了一个JApplet,生活在签名的jar(我购买了证书)。我正在努力尝试使它在Web服务器上运行。当我使用标准的“applet”标签调用它时,我得到了认可jar被签名的nag对话框。然后它会显示另一个对话框,要求阻止小程序内容。它提到我有我的签名jar和其他未签名的jar文件(即javax.mail.jar,mysql-connector-java-5.1.25-bin.jar和其他一些文件)。这导致下面的控制台转储:签名的jar抛出java.lang.reflect.InvocationTargetException

security: Trust for: http://MyUrl/javax.mail.jar has ended: Wed Dec 31 19:00:00 EST 1969 
basic: exception: java.lang.reflect.InvocationTargetException. 
java.lang.RuntimeException: java.lang.reflect.InvocationTargetException 
    at com.sun.deploy.uitoolkit.impl.awt.AWTAppletAdapter.runOnEDTAndWait(Unknown Source) 
    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.reflect.InvocationTargetException 
    at com.sun.deploy.uitoolkit.impl.awt.OldPluginAWTUtil.invokeAndWait(Unknown Source) 
    ... 5 more 
Caused by: com.sun.deploy.security.BlockedException: User has denied the priviledges to the code 
    at sun.plugin2.applet.Plugin2ClassLoader.getPermissions(Unknown Source) 
    at sun.plugin2.applet.Applet2ClassLoader.getPermissions(Unknown Source) 
    at java.security.SecureClassLoader.getProtectionDomain(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$2.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) 
basic: Removed progress listener: [email protected] 
security: Reset deny session certificate store 
basic: Dialog type is not candidate for embedding 

控制台输出也警告关于“没有权限控制的属性”和“缺少代码库清单属性”即使我指定他们的HTML代码。

我也尝试通过jnlp文件运行它。当我尝试的是,它似乎并没有认识到通过以下证明罐子签字:

enter image description here

它导致同一个控制台转储。

我正在踏上新的领域。有人可以对此有所了解吗?我知道这可能是一些基本的东西,但是,我可以用另一套眼睛来说明这一点。

在此先感谢您的帮助,咨询等

+0

尝试清理浏览器缓存。 –

+0

感谢您的建议。我已经尝试了很多次,获得了相同的结果。代码中的东西是否会导致这种情况?我在控制台输出中没有看到任何可以表明这一点的内容。 – rrirower

+0

我刚刚阅读了一篇文章,讨论了签署所需的其他相关jar文件。这可能是问题吗?我使用mail.jar和其他罐子,但是,我只签了我的罐子。 – rrirower

回答

0

我能够通过签署一个罐子在一个时间来解决这个问题。我运行了应用程序并观看了控制台消息。每次,控制台输出都会抱怨安全性过期的另一个jar。我一个接一个地在有问题的瓶子上签字,问题就解决了。我不确定这是处理这个问题的适当方式,但它解决了这个问题。

相关问题