2017-05-22 2 views
0

Ich muss in der Lage sein, eine ehcache Konfigurationsdatei (ehcache.xml) von außerhalb des Klassenpfads zu lesen, um verschiedene Dateien nach Umgebung zu haben (um zB die Multicast Adresse ändern zu können) Cache-Sharing).ehcache Konfigurationsdatei außerhalb des Klassenpfads

Bevor ich einfach wurde unter Verwendung eines XML definiert Bean:

<bean id="ehCache" class="org.springframework.cache.ehcache.EhCacheManagerFactoryBean"> <property name="configLocation" value="#{ @PreferenceService.getEhcacheFileName() }" /> </bean>

PreferenceService.getEhcacheFileName (mit) einem Weg zurück in einer Eigenschaftendatei.

Wenn die Eigenschaft mit einem Klassenpfadpfad (Klassenpfad: ehcache.xml) gefüllt ist, funktioniert die Anwendung ordnungsgemäß.

Aber wenn ich einen absoluten Pfad (/home/foo/ehcache.xml) verwenden möchte, wird die Ressource nicht gefunden.

Kann ein absoluter Pfad verwendet werden? Und wenn ja, welche Eigenschaften muss ich verwenden?

+0

Whcih ehcache Version? Federversion? Was genau hast du versucht? Präfix mit Datei: /? –

+0

haha ​​ich habe die "file:" in meinem weg vergessen, danke! Ich glaube nicht, dass ich meine Frage löschen kann, also werde ich sie beantworten. –

+0

um das Problem der Anpassung der Konfiguration an verschiedene Umgebungen zu lösen (zum Beispiel deaktivieren Sie die verteilte Persistenz in devel) Ich bevorzugte es, sie beim Hochfahren der Anwendung programmgesteuert zu ändern. – fustaki

Antwort

0

configLocation kann einen absoluten Pfad ohne Probleme enthalten.

Ich habe gerade vergessen, die Datei hinzuzufügen: vor dem Pfad in meiner Eigenschaftendatei.

So ist mein Weg jetzt: "file: /foo/foo/ehcache.xml"

+0

können Sie Ihre eigene Antwort als die "offizielle/beste" Antwort annehmen (grüner Haken) –

Verwandte Themen