ich context.xml
in Tomcat haben:Konfiguration in WAR
<Resource name="datasource/sconfiguration" auth="Container" connectionString=...
Und ich bin in der Lage mein Objekt erhalten gefüllt wie:
MyConfiguration sc = (MyConfiguration) envCtx.lookup("datasource/sconfiguration");
Jetzt möchte ich meine WAR in Glassfish 4.1 verwenden .. .und es scheint, dass es nicht funktioniert:
javax.naming.NamingException: Lookup failed for 'datasource/sconfiguration' in SerialContext[myEnv={java.naming.factory.initial=com.sun.enterpr ....
Es scheint ziemlich seltsam, eine WAR für einen bestimmten App-Server zu haben. Wie kann ich diesen WAR für WAS gültig machen? Es scheint, dass Glassfish can use context.xml aber viele Leute sagen, dass es nicht kann.
Ich muss eine WAR-Datei erstellen, die in verschiedenen WAS ausgeführt werden kann, ohne meinen Code zu ändern. Ich verwende eine NoSql-Datenbank mit der Möglichkeit, verschiedene Datenquellen (einschließlich SQL) zu verwenden, also muss ich ein generisches Objekt definieren. Ich teste jetzt Glassfish und probierte das JNDI, aber es scheint etwas anders zu sein, es konnte java: comp/env nicht finden. Ich frage mich nur, ob es einen sauberen, standardmäßigen Weg in Java gibt, um meine Daten zu registrieren, so dass Tomcat es nicht lesen kann – user1156544
Sie müssen Ihren Code nicht ändern, aber Sie müssen entweder Anweisungen oder ein Shell-Skript oder etwas Externes bereitstellen, um die Datenbankverbindung zu konfigurieren. Einige Anwendungsserver erfordern auch das Kopieren des JDBC-Treibers in ein bestimmtes Verzeichnis, sodass dies ebenfalls in Betracht gezogen wird. Ich fürchte, es ist kein reiner Download und Lauf. – stdunbar