- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我有一个在浏览器中运行并从 Javascript 调用的小程序。有 2 个类:PortalLauncher 和 ParamSplitter,它们位于默认包中。 Javascript 调用 PortalLauncher 中的方法,后者又调用 ParamSplitter 中的函数。该小程序位于已签名的 jar 中。
这在大多数情况下都有效。但是,少数用户不时遇到问题。在一天中的某个时间(即不是第一次访问时)抛出以下异常:
java.lang.SecurityException: class "ParamSplitter"'s signer information does not
match signer information of other classes in the same package
at java.lang.ClassLoader.checkCerts(Unknown Source)
at java.lang.ClassLoader.preDefineClass(Unknown Source)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$000(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at sun.applet.AppletClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.applet.AppletClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
at PortalLauncher.openFile(PortalLauncher.java:313)
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.plugin.javascript.JSInvoke.invoke(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.plugin.javascript.JSClassLoader.invoke(Unknown Source)
at sun.plugin.com.MethodDispatcher.invoke(Unknown Source)
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
java.lang.Exception: java.lang.SecurityException: class "ParamSplitter"'s signer
information does not match signer information of other classes in the same package
at sun.plugin.com.DispatchImpl.invokeImpl(Unknown Source)
at sun.plugin.com.DispatchImpl$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at sun.plugin.com.DispatchImpl.invoke(Unknown Source)
任何人都可以阐明此异常的含义以及可能导致它的原因吗?大约有 800 名用户使用此小程序,但只有少数用户受到影响,甚至这些用户也只是偶尔遇到问题。
最佳答案
这意味着在同一个 JVM 中,还有从其他 jar 加载的其他类,这些类已经被不同地签名(或者可能没有签名),也在默认包中。
如果我正确地解释了你的问题,你的小程序本身只有一个 jar ,所以它一定是一个来自其他地方的 jar ;只有一些用户拥有。我首先想到的可能是在另一个选项卡中运行的 applet 的 jar(可以使用相同的 jvm 实例)。但是其他小程序应该使用单独的类加载器,所以它们不应该那样冲突。更有可能的是,他们在 jvm 的引导类路径中有一个 jar,该 jar 在根包中也有一个类。
无论哪种方式,解决方案/变通方法就是不使用默认包,而是使用您自己的包。这样您就可以避免与另一个 jar 发生碰撞。
关于java.lang.SecurityException : class "XYZ"'s signer information does not match signer information of other classes in the same package 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1339787/
('xyz' != 'xyz') 和 NOT ('xyz' = 'xyz') 之间有什么区别吗? 虽然我在 Oracle DB 的上下文中询问,但也想知道其他语言的相同情况。 差异主要在于处理速度和所
我注意到定义了 simpleType 或 complexType,并且在模式文件中的多个元素的声明中使用了这些类型,simpleType 或 complexType 生成了一个方法签名作为“JAXBE
我在 XYZ 的 3D 空间中将对象旋转 90 度步长 (rX rY rZ)。角度限制为 0-360 度,我使用以下命令来旋转矩阵: Matrix.rotateM(mModelMatrix, 0, r
recursivePrint 函数将递归地显示文件和文件夹,我已经调用了一个函数来搜索文件中的单词此代码适用于小号。文件数但是当我使用所有目录时,它给出了内存不足错误java堆空间 File[] ma
我有一个简单的 html 网站,其中包含 50 多个 html 页面。从 statistics-script 中,我有时会在 xyz.html/(重定向到 404)而不是 xyz.html 之类的页面
我对一个位置(原始文件夹)中的所有文件进行哈希处理,然后将哈希值写入变量,然后对另一位置(目标文件夹)中的所有文件执行相同的操作: $origin = Get-ChildItem .\Test1 |
我正在编写一个包含键值对集合的重要类,在编译期间我收到一个我无法弄清楚的非常奇怪的错误。在一个与这里的函数非常相似的函数中,但由于所需代码的复杂性而没有上下文,我收到错误: TValue& opera
我正在尝试做一些非常简单的事情。 场景如下:我有一个整个网站与支持推送状态的浏览器配合得很好。该网站的工作基础是该语言是“实际页面”,例如: /en/whatever/etc = index.en.
在java脚本(或jquery)中,有什么区别 var a = xyz[] var a = xyz{} 我在互联网上搜索但找不到任何答案?如果有任何差异,请告诉我。 最佳答案 这是无效的语法。 var
我正在通过以下步骤在 Android 中进行 JSON 解析: 使用 HttpPost 对象从网络服务获取 XML 响应。 将此 XML 转换为 JSON 字符串,然后再转换为 JSON 对象。 现在
有什么区别: class A { public: void virtual method1() {...}; virtual void method2() {...}; }; 编译器(编辑:Apple
我正在尝试使用 configure、make、make install 三部曲来编译 c 源代码。 由于我想编译源代码,以便它们使用默认情况下未使用的另一个库 (XYZ),因此我可以使用 ./conf
在 MySQL 中,如何将表的列名从“sum(xyz)”更改为“xyz”?我已经尝试了以下解决方案来更改列名: Change Column Name in MySQL Rename column SQ
不能覆盖委托(delegate)函数, didFinishLaunchingWithOptions 和其他与应用程序委托(delegate)相关的函数都很好,但是当我尝试使用 application(
Tally-ho 小伙子们, 这个问题认为线性代数的艺术是数学中我无法解决的地方。所以我希望你们能帮助我 :D。 我正在尝试为一款名为《骑马与砍杀》的游戏创建单人自动踢球作弊。这个 autokicke
我正在 typescript 中访问导入的nodejs模块的函数,编译器会为每个方法调用或属性访问发出给定的错误。这是我的声明: import imageProc = module('imagePr
这个问题在这里已经有了答案: What is wrong with below code (3 个答案) What does sizeof(&array) return? (4 个答案) 关闭 9
为了好玩,我决定制作类似于 Markdown 的东西。根据我过去对正则表达式的一些小经验,我知道它们有多么强大,所以它们将是我所需要的。 所以,如果我有这个字符串: Hello **bold*
假设我有一个目录,里面有一堆网站名称。 即 dev.domain.com dev.domain2.com dev.domain3.com 如何将它们重命名为 .com在使用管道和/或重定向 bash
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicate: difference between string object and string literal 你好, 首先
我是一名优秀的程序员,十分优秀!