2011-01-12 11 views
2

Wir haben eine leicht modifizierte JBoss 5.1.0-Konfiguration, in der wir einen neuen Ordner namens <JBOSS_HOME>/myconf zum Klassenpfad hinzugefügt haben. Hier ist die zugehörige Bit von conf/jboss-service.xml:Hinzufügen des zweiten conf-Ordners zu JBoss 5.1.0

<server> 
    <classpath codebase="${jboss.server.lib.url}" archives="*"/> 
    <classpath codebase="${jboss.common.lib.url}" archives="*"/> 
    <classpath codebase="myconf" archives="*"/> 
    ... 
</server> 

Die Idee, dass anwendungsspezifische Konfigurationsdateien sein kann gehen in <JBOSS_HOME>/myconf während JBoss-Konfigurationsdateien in <JBOSS_HOME>/conf bleiben können.

In myconf Ich habe eine Datei namens myapp_log4j.xml, die eine Standard-Log4J-Konfigurationsdatei ist. Diese Datei wird von einem AOP-Interceptor unter Verwendung von getResourceAsStream("/myapp_log4j.xml") geladen.

Wenn die XML-Datei ist in der folgenden Position funktioniert es:

<JBOSS_HOME>/myconf/conf/myapp_log4j.xml 

obwohl, wenn es in diesem Ort ist, ist es nicht:

<JBOSS_HOME>/myconf/myapp_log4j.xml 

Warum funktioniert die XML-Datei müssen in einem conf-Unterordner sein, und können wir das irgendwie ändern/reparieren?

+0

Der einzelne Ordner "conf" ist der Kern von JBoss. Warum ist Ihre anwendungsspezifische Konfiguration nicht in der Anwendung selbst enthalten? – skaffman

+0

Bleib dran, es ist das Richtige. Messaging mit den Interna von JBoss ist dagegen nicht. – skaffman

+0

@skaffman: Danke, wenn du das als richtige Antwort hinzufügen willst, dann kann ich es akzeptieren :) – Rich

Antwort

-1

Um die Kommentare zusammenzufassen, ist der Versuch, eine anwendungsspezifische Konfiguration in ein separates JBoss-Verzeichnis des Typs conf zu schreiben, zum Scheitern verurteilt. JBoss soll sich nicht so beugen.

App-spezifische Konfiguration sollte entweder (a) innerhalb der Anwendung (d. H. Innerhalb der EAR/WAR) oder (b) irgendwo außerhalb von JBoss vollständig gehen.

2

Ich stimme nicht zu. Wir verwenden seit Jahren benutzerdefinierte Klassenpfadeinträge ohne Probleme. Wir finden, dass es eine sehr effiziente Möglichkeit ist, Klassenpfadkonfigurationen auszutauschen. Ich denke, Ihr Problem ist, dass JBoss eine URL erwartet. Zum Beispiel

<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/"/>