【问题标题】:Java System.setProperties might effect other codeJava System.setProperties 可能会影响其他代码
【发布时间】:2013-08-12 16:03:51
【问题描述】:

最近我将一段代码集成到现有项目中。 然而,为了使代码能够工作,已经设置了以下属性:

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) 我可以设置一些特定于我的对象的属性吗?这意味着我不必设置系统范围的属性来获得相同的结果。

【问题讨论】:

    标签: java properties system


    【解决方案1】:

    Believe System 将绑定到运行的 JVM。如果我正确理解您的问题,您想知道这是否会影响其他地方的功能。

    如果您在同一 JVM 中加载依赖于上面设置的属性的另一个应用程序,则可能会影响功能。

    System.setProperty("weblogic.security.SSL.enforceConstraints","on");
    

    在不同的应用程序中设置。要担心的另一件事是这些属性是否在部署时设置,然后被认为是不可变的?如果它们被访问和更改,而其他应用程序正在访问和更改,您将陷入混乱。

    希望这是有道理的。

    【讨论】:

    • 这些属性是在运行时设置的。
    • 它们可以在运行时更改还是被视为不可变的?
    • 它们可以在运行时更改。
    • 那时我会非常谨慎地这样做。特别是考虑到我在此属性路径中看到 weblogic,这告诉我它可能是部署到 WebLogic 的 Web 应用程序,这是一个线程环境,因此除非您正在同步所有内容(这可能会导致死锁或活锁)。我会尝试围绕这种依赖进行设计。
    • 我同意你关于工程的看法。但是我在这件事上没有太多选择。
    猜你喜欢
    • 2023-03-27
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-17
    • 1970-01-01
    相关资源
    最近更新 更多