我有一个Weblogic托管服务器,当我将-Djava.security.manager添加到JAVA_OPTIONS时,我遇到了问题。如果我删除它,那么即使没有部署我的应用程序,我也没有启动服务器的问题。
我得到的错误是:
<Critical> <WebLogicServer> <BEA-000386> <Server subsystem failed. Reason: javax.xml.transform.TransformerFactoryConfigurationError: Provider weblogic.xml.jaxp.RegistrySAXTransformerFactory could not be instantiated: java.util.MissingResourceException: Could not instantiate factory delegate, got exception(s):
java.security.AccessControlException: access denied ("java.lang.RuntimePermission" "accessClassInPackage.com.sun.org.apache.xalan.internal.xsltc.trax")
通过反复试验,我发现我可以通过添加以下内容成功启动:
grant codeBase "file:/app/weblogic/weblogic_12c/oracle_common/modules/-" {
permission java.security.AllPermission;
};
到weblogic.policy文件。
我不明白该目录中有什么导致我解决的问题!它包含由weblogic安装的100多个罐子,我假设其中一个罐子是我的问题所在。
我已经检查了这些jar中的所有类(使用jar -tvf)但是trax包没有出现在任何地方。
我宁愿不让政策文件留下如此广泛的权限集,所以任何建议都会有所帮助。
编辑: 附加信息: SunOS 5.10 Weblogic 12c Java 1.7.0_45