2016-08-07 56 views
0

Ich habe ein Netbeans-Projekt, aus dem ich eine WAR-Datei erstelle. Ich stelle nun zwei Instanzen dieser Kriegsdatei auf meinem Glassfish-Server bereit, jeder mit einem anderen Kontextstamm, z. mydomain.com/abc und mydomain.com/defZwei Glassfish-Anwendungen mit einer War-Datei, die auf verschiedenen Datenbanken läuft

Dies funktioniert gut, aber sie sind immer noch auf der gleichen Datenbank arbeiten, da ich die Persistenzeinheit im persistence.xml und der glassfish-resources.xml erklären.

Meine glassfish-resources.xml Datei:

... 
<jdbc-resource enabled="true" 
       jndi-name="jdbc/abc" 
       object-type="user" 
       pool-name="abcPool"> 
    <description/> 
</jdbc-resource> 

<jdbc-connection-pool 
    ... 
    name="abcPool" 
    ... 
    <property name="URL" value="jdbc:mysql://localhost:3306/abc"/> 
    ... 
</jdbc-connection-pool> 

Meine persistence.xml Datei:

... 
<persistence-unit name="abcPU" transaction-type="JTA"> 
    <jta-data-source>jdbc/abc</jta-data-source> 
    ... 
</persistence-unit> 
... 

Hat jemand eine Lösung auf, wie zwei Instanzen einer WAR-Datei haben, auf zwei verschiedenen Datenbanken in Betrieb?

Gibt es vielleicht eine Möglichkeit, eine andere glassfish-resources.xml und persistence.xml auf jede Anwendung hochladen, überschreiben die gepackten?

Es wäre akzeptabel, die Moduldeskriptoren in der Administrationskonsole der glassfish-Domäne zu ändern, sobald die Anwendung implementiert ist, falls dies möglich ist.

Wenn Screenshots von der glassfish-Domain-Admin-Konsole benötigt werden, schreiben Sie bitte in die Kommentare, ich werde sie hinzufügen.

Vielen Dank im Voraus!

+0

* Zwei Glasfischen mit einer WAR-Datei bereitgestellte Anwendungen * ** ** Was tut das *** bedeuten ***? –

Antwort

1

Am einfachsten wäre meiner Meinung nach, zwei verschiedene Builds zu haben.

Grundsätzlich können Sie zwei verschiedene WAR-Dateien erstellen. Jeder mit einer anderen persistence.xml-Datei darin. Einer zeigt auf die JDBC-Ressource ABC und der andere auf die JDBS-Ressource DEF.

Build Tools wie Gradle + Jenkins kann Sie dabei unterstützen.

Sie finden viele Informationen über ähnliche Aufgaben, wenn Sie nach Builds mit einer anderen Konfiguration für das Testen vs. produktives System suchen. Dies ist eine sehr häufige Aufgabe.

Hier könnte ein Ausgangspunkt für das, was Sie suchen: Create multiple .WAR files with different dependencies in Gradle

+0

Vielen Dank für die schnelle Antwort! Ich hätte es vorgezogen, nur eine Kriegsakte zu haben, aber das ist definitiv eine Lösung für mein Problem! Danke für die Idee und den Link! –

0

Auf Serverebene richten Sie zwei Datenquellen ein, die auf verschiedene Datenbanken verweisen und die Anwendungsinstanz aufrufen und die Ressourcenreferenz ändern, die auf eine bestimmte Datenquelle verweist.