最近我将一段代码集成到现有项目中。 但是,为了使代码工作,已设置以下属性:
System.setProperty("javax.xml.soap.MessageFactory","com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPMessageFactory1_1Impl");
System.setProperty("javax.xml.soap.SOAPFactory","com.sun.xml.internal.messaging.saaj.soap.ver1_1.SOAPFactory1_1Impl");
System.setProperty("javax.xml.soap.MetaFactory","com.sun.xml.internal.messaging.saaj.soap.SAAJMetaFactoryImpl");
System.setProperty("weblogic.security.SSL.enforceConstraints","off");
System.setProperty("weblogic.security.SSL.ignoreHostnameVerification","true");
System.setProperty("weblogic.security.SSL.strictcertchecking","false");
System.setProperty("weblogic.security.SSL.nojce","true");
现在一切似乎都很好,但我有一个很大的担忧。
1) 上述属性是否会扰乱大型应用程序中其他地方的功能?
2) 我可以设置一些特定于我的对象的属性吗?这意味着我不必设置系统范围的属性来获得相同的结果。
最佳答案
相信系统会绑定(bind)到 JVM 运行。如果我没有正确理解你的问题,你想知道这是否会影响其他地方的功能。
如果您在同一 JVM 中加载依赖于上述设置的属性的另一个应用程序,则可能会影响功能。
即
System.setProperty("weblogic.security.SSL.enforceConstraints","on");
在不同的应用程序中设置。另一件需要担心的事情是这些属性是在部署时设置的,然后被认为是不可变的吗?如果它们被访问和更改,而其他应用程序正在访问和更改,您将陷入困惑。
希望这是有道理的。
关于Java System.setProperties 可能会影响其他代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18191617/