将第二个conf文件夹添加到JBoss 5.1.0

时间:2011-01-12 13:14:50

标签: classloader jboss5.x

我们稍微修改了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子文件夹中,有什么方法可以更改/修复它?

2 个答案:

答案 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之外的某个地方。