Sie müssen ein separates JAR mit allen Klassen (und deren Abhängigkeiten) erstellen, welche Instanzen Sie zwischenspeichern möchten und dann dieses jar sowie ehcache.jar als Bibliothek bereitstellen (abhängig davon, welchen Anwendungsserver Sie verwenden) Verwenden Sie das Verfahren möglicherweise anders), im Falle von Tomcat 6 bedeutet das Kopieren von Gläsern in den lib-Ordner.
Was passiert dann ist, dass ehcache und Ihre Domain-Klassen von der Classloader von allen Web-Anwendungen gemeinsam geladen werden, so dass Instanzen im Cache zwischengespeichert und im Speicher verfügbar sind.
Die Abhängigkeiten Ihrer Domänenklassen sind wichtig. Sie sollten daher sehen, ob dieser Ansatz in Ihrem Projekt durchführbar ist. Dies kann sich auch auf die Art auswirken, wie Sie die Webanwendungen neu starten.
Darüber hinaus sollten Sie beachten, dass Cache und Freigabe nicht die gleiche Sache sind. Cache ist eine Optimierung. Wenn Sie eine Objektinstanz in den Cache stellen, wird sie möglicherweise sofort gelöscht, wenn z. B. der Cache nicht genügend Speicherplatz oder eine Konfiguration für die Bereinigungsrichtlinie aufweist. Möglicherweise müssen Sie überprüfen, wie Sie Ecache im Allgemeinen verwenden möchten.
Könnten Sie mehr darüber herausfinden, was Sie mit dem gemeinsam genutzten Cache erreichen möchten? – lucas
Ich möchte es als eine verteilte Sperre verwenden. Ich könnte eine Datenbank verwenden, um anzuzeigen, dass eine Transaktion läuft (aber ich glaube, das ist ein Anti-Pattern). Usecase: War1 startet ein TX, speichert es im Cache. Dies verhindert, dass der gleiche Sender gestartet wird. War2 macht TX basierend auf einem externen Ereignis ungültig. – ashitaka