我继承了在JBoss 4.2.1.GA部署集群上运行的应用程序。该应用程序是技术的混合体,但使用的主要View技术是Struts 1& Struts 2(它们共存)。
我正在努力了解如何构建和部署应用程序。该应用程序使用i18n作为前端,并使用标准bean:message
标签来检索翻译:
例如:
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<input type="text" name="searchFilter" id="searchFilterId" value="<bean:message key="ng.searchfor"/>"
此外,该应用程序还有一堆application.properties文件(每次翻译)。
但是,在构建和部署EAR时,应用程序* .properties文件未打包在WAR / EAR中。而是将它们剥离并复制到服务器上的外部共享文件夹(群集中的所有节点都可以访问该文件夹)。我相信,这个概念是可以将属性写入中心位置,并由应用程序即时加载/重新加载。
但是,我不明白struts如何设法加载这些翻译文件。根据我的理解,应用程序* .properties文件需要位于应用程序类路径中,以便struts可以找到它们。
struts-config.xml
文件没有其他信息:
web.xml也没有:
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/WEB-INF/struts-config.xml</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>detail</param-name>
<param-value>2</param-value>
</init-param>
<init-param>
<param-name>chainConfig</param-name>
<!-- We overide the default chain-config.xlm file to add the chain command in charge of the audit trail.-->
<param-value>/WEB-INF/chain-config.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
所以我唯一的结论是,不知何故,这些application.properties文件(存储在jboss外部的路径中)以某种方式映射到类路径,以便类加载器可以自动找到它们。
但我似乎无法在任何地方找到指令/配置指令。
JBoss 4有一个配置文件可以让我添加到类加载器的路径吗?我发现在JB 7+中使用模块的参考,但是无法为JB4找到任何东西。或者有没有办法配置struts从类路径外部加载它的application.properties文件?