Wie man aktuelle OHR Lage programmgesteuert mit JBoss
Weiß jemand, wie man programmatisch den absoluten Pfad im Dateisystem für eine EAR deployed in JBoss, Java-code innerhalb des gleichen OHR?
Ich brauche das, weil ich will kopieren Sie einige Dateien in der EAR zu einem anderen Teil des Dateisystems, auf deploy-Zeit.
Danke an alle!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich tun auf diese Weise.
OHR hat, ein service MyService, wo ich die Arbeit mit OHR-Inhalt:
können Sie tun, Sie "System.getProperty()" hier ist die link für andere Eigenschaften, die Sie kann verwendet
ex:
Ergebnis
Nachdem Sie gerade brauchen, um hinzuzufügen
"/deployments/YOUR_PROJECT_EAR/..."
Um die
ServletContext
von der Naht, die Sie tun können:welches verfügbar ist, sobald die Naht geschaffen hat, die
applicationContext
. Und danngetRealPath("/")
funktioniert für root-Kontext deployment Ordner. Jeder Ordner-Struktur im root-Kontext erreicht werden kann.Dies ist ziemlich fummelig, aber Sie können dies tun, indem Sie eine Abfrage der JBoss
MainDeployer
MBean. Die MBean gefunden beijboss.system:service=MainDeployer
, und hat eine JMX operationlistDeployments
. Dies gibt eine Sammlung vonDeploymentInfo
Objekte, von denen wird Ihre Bereitstellung der EAR-Dateien. Dass DeploymentInfo hat eineurl
Eigenschaft, diefile://
URL Beschreibung deiner deployment-Verzeichnis.Nett, eh? Sie können die raw-JMX-API, um dies zu tun, aber der Frühling bietet eine viel schöner Mechanismus, mit einem
MBeanProxyFactoryBean
zu setzen, die eine Instanz vonMainDeployerMBean
.Möchte ich finden, einen einfacheren Weg, aber das ist die beste, die ich bisher gefunden habe.
Sind diese Ressourcen zugeordnet oder verfügbar gemacht unter einer " web-Pfad (in einem KRIEG)?
Wenn dem so ist, könnten Sie versuchen, Sie zu verwenden
ServletContext.getRealPath()
übersetzen Sie den virtuellen Pfad zum real - /Dateisystem-Pfad.