我有一个在 Tomcat 7.0.5x 中运行的 Java Web 应用程序。我需要将此应用程序交付给我们的客户,该客户拥有多个不同的网络,应用程序/tomcat 将在这些网络上运行。
我的要求之一是允许最终用户从一个小型胖客户端实用程序配置 Tomcat 服务器的连接器端口。此实用程序将通过打开 server.xml、更新端口属性并保存结果来存储配置的端口。
问题是需要定义多个连接器,因此需要实现一些额外的逻辑以确保更新正确的连接器。
已经提出的想法之一是在连接器上设置一个自定义属性,该属性将唯一地标识该连接器是需要更新的连接器,例如,
<Connector foo="bar" port="8080" ...
然后,我们只需对带有 foo="bar" 元素的 Connector 元素执行 XPath 搜索。
拥有自定义属性似乎不会破坏 Tomcat,所以我的问题是:这有什么问题吗?有什么特别“坏”或“臭”的吗?
另一种选择是传递 a newPort
,oldPort
然后执行 XPath 搜索,如:
XPathExpression expr = xPath.compile("//Connector[@port=\"" + oldPort + "\"]")
然后设置newPort
为新值。
这似乎不是一个坏主意,但是还有其他可配置的属性,因此此更新方法的参数列表可能会变得很麻烦。无论如何,设计讨论不适合 Stack Overflow,但我想知道在 server.xml 中使用自定义属性是否有任何问题。
谢谢收听...