我们稍微修改了JBoss 5.1.0配置,我们在类路径中添加了一个名为<JBOSS_HOME>/myconf
的新文件夹。以下是conf/jboss-service.xml
的相关位:
<server>
<classpath codebase="${jboss.server.lib.url}" archives="*"/>
<classpath codebase="${jboss.common.lib.url}" archives="*"/>
<classpath codebase="myconf" archives="*"/>
...
</server>
这个想法是特定于应用程序的配置文件可以进入<JBOSS_HOME>/myconf
,而特定于JBoss的配置文件可以保留在<JBOSS_HOME>/conf
中。
在myconf
中,我有一个名为myapp_log4j.xml
的文件,它是一个标准的Log4J配置文件。该文件由AOP拦截器使用getResourceAsStream("/myapp_log4j.xml")
加载。
如果.xml文件位于以下位置,则可以正常工作:
<JBOSS_HOME>/myconf/conf/myapp_log4j.xml
但如果它在这个位置,则不会:
<JBOSS_HOME>/myconf/myapp_log4j.xml
为什么.xml文件需要位于conf子文件夹中,有什么方法可以更改/修复它?
答案 0 :(得分:2)
我不同意。我们多年来一直使用自定义类路径条目而没有任何问题。我们发现它是一种非常有效的交换类路径配置的方法。我认为你的问题是JBoss期待一个URL。如,
<classpath codebase="file:/home/me/myProject/myBranch/patches" archives="*"/>
<classpath codebase="file:/home/me/myProject/myBranch/lib" archives="*"/>
<classpath codebase="file:/home/me/myProject/myBranch/ext/" archives="*"/>
<classpath codebase="file:/home/me/myProject/myBranch/"/>
答案 1 :(得分:-1)
总结这些注释,尝试将特定于应用程序的配置放入单独的conf
样式的JBoss目录中注定要失败。 JBoss并不打算这样弯曲。
应用程序配置应该(a)在应用程序内部(即在EAR / WAR内部),或者(b)完全在JBoss之外的某个地方。