Come fare riferimento a un adattatore di risorse JCA incorporata
Domanda
Per il nostro progetto J2EE in corso sulla base di JBoss, abbiamo bisogno di interfacciarsi con un sistema remoto usando i fagioli messaggi guidato e un adattatore di risorse JCA fornito come un file RAR da parte di terzi. Vorrei confezionare e distribuire l'intero progetto come un file EAR al nostro server JBoss. Più in particolare, il file RAR dovrebbe essere incorporato all'interno del file EAR e non essere distribuiti a livello globale.
Tutto questo sta lavorando bene finora, ma non sono particolarmente soddisfatto del modo in cui il file RAR viene fatto riferimento. Il jboss.xml confezionato con il MDB, per esempio, attualmente si presenta così:
<jboss>
<enterprise-beans>
<message-driven>
<ejb-name>testBean1</ejb-name>
<resource-adapter-name>test1.ear#thirdparty-1.0.rar</resource-adapter-name>
</message-driven>
</enterprise-beans>
</jboss>
Mentre questo è generalmente lavorando bene, si romperà quando il file EAR viene rinominato "test2.ear". C'è un modo per fare riferimento al file RAR incorporato senza codificare il nome del archivio contenente?
Modifica Quasi due mesi più tardi, non ho ancora trovato una vera risposta a questa domanda. Chiedendo in giro, tutto quello che ho erano quei due utili suggerimenti: "proprietà Usa Maven e filtro", e "Non includere il RAR all'interno dell'orecchio." Ho il forte sospetto che attualmente non v'è alcun modo per gestire correttamente questo in JBoss. Quindi darò su di esso e semplicemente accettare l'unica risposta che ho ricevuto qui.
Soluzione
stai usando Maven per costruire? Se è così, è possibile impostare una proprietà Maven che il nome del file orecchio e usare quel nome per impostare i valori nei file di risorse utilizzando un segnaposto
es xxx
quindi usare
$ {} ear.name .ear # THIRDPARTY-1.0.rar
basta assicurarsi di impostare le risorse che avranno i segnaposto
qualcosa di simile:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>