我正在开发一个巨大的小程序,加载 100 多个罐子,其中 50 个是第三方的。所有这些都经过签名和信任。
不幸的是,openmap 加载二进制文件(形状和图层文件)。我无法签署这些文件(AFAIK),因为它们不是罐子,没有清单等。
由于 jar 加载二进制文件,我在运行时收到混合代码警告。我想避免这种情况的唯一方法是将每个 .jar 标记为“Trusted-Library:true”。更改所有 .jar 上的清单意味着必须重新签署所有 .jar,这是一个政治问题。
我知道可以在 java 控制面板中禁用该对话框。我正在寻找另一种解决方法。天真地,我希望能够以某种方式标记 openmap 或使用它的我的 jar 是受信任的(或任何它需要的)以在没有警告的情况下加载这些文件。我尝试使 openmap 成为受信任的库,但这并不能消除错误。如果我尝试使使用 openmap 的 jar 成为受信任的库,那么我会遇到问题,因为我的 jar 依赖于其他 jar,并且我的 jar 中的类定义无法加载,因为这些依赖类位于另一个类加载器中。
编辑:
这似乎触发了对话框(单击“是,阻止可能不安全”以获取此日志记录语句)
安全性: http://localhost:8080/app/client-lib/中的资源名称“http://localhost:8080/maps/politicalWorld/vmap_political_world/vmap_area_thin.shp” :java.lang.SecurityException:受信任的加载程序试图加载来自http://localhost:8080/app/client-lib/ 的沙盒资源