【发布时间】:2019-04-23 20:49:27
【问题描述】:
我有一个 WAR,其中一个讨厌的库会执行诸如 System.setProperty("javax.xml.stream.XMLInputFactory", ...) 之类的操作,这会破坏 Web 服务器容器,因为后者取决于同一属性的值(详情 here)。
在处理大量此类行为不端的代码之前(是的,它甚至没有被分解),我想检查是否有一些工具(例如,特殊的类加载器)能够维护 WAR 级别的范围最少可写属性,以便这些更改将保留在我的 Web 应用程序中,并且不会干扰 Web 容器或其他 WAR。
【问题讨论】:
-
战争建立在什么框架上?
-
@Compass,这有什么关系?最终,它是 Tomcat 或 Jetty 下的标准 WAR。无论如何,它是一个使用 Spring + Maven 构建的 API。
-
你能向那个行为不端的库的开发者提交一份错误报告吗?或者,如果它是开源的,请自行修复?
-
@Robert,遗留代码,开发人员几年前已经转移到其他地方。我可以自己修复它,但这意味着要翻阅数十个具有该复制/粘贴错误代码的文件。
-
这里有一个教训:使用系统属性时,选择一个不同的属性名称。例如,使用使用它的包的名称来限定属性名称:“my.framework.compressStrings”,而不仅仅是“compressStrings”。
标签: java