Ist es möglich, ein benutzerdefiniertes Objekt (String oder URL) zu JNDI mit der Weblogic Server-Verwaltungskonsole (Weblogic 10.0) oder durch Bearbeiten der Serverkonfigurationsdatei (config.xml) hinzuzufügen?Hinzufügen eines benutzerdefinierten Objekts zu JNDI on Weblogic 10
Antwort
Ich glaube nicht. Zitiert Load objects in the JNDI tree:
die Administrationskonsole verwenden, können Sie WebLogic Server J2EE-Service und Komponenten, wie RMI, JMS, EJBs und JDBC-Datenquellen, in der JNDI-Struktur laden.
Und in der Tat, ich konnte nicht einen Weg ein String
oder URL
mit der Konsole hinzuzufügen finden.
AFAIK, der normale Weg ist es, ein env-entry
in Ihrem Deployment Descriptor zu setzen (web.xml, ejb-jar.xml):
<env-entry>
<env-entry-name>string/foo</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>foobar</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>url/bar</env-entry-name>
<env-entry-type>java.net.URL</env-entry-type>
<env-entry-value>http://foobar/</env-entry-value>
</env-entry>
Ich habe dies erreicht mit genau dem gleichen Problem. In Websphere beispielsweise kann ich JNDI beliebige Parameter wie temporäre Verzeichnisse, Kennwörter und andere Informationen hinzufügen, ohne das EAR neu kompilieren zu müssen.
Ich habe eine Weile gesucht und scheint Weblogic fehlt diese Funktion. Ich habe eine Hilfsklasse geschrieben, die JNDI zuerst nach einem bestimmten Konfigurationsschlüssel durchsucht, und wenn sie nicht gefunden wird, greift sie auf die Suchumgebung oder Systemvariablen zurück.
Vielleicht könnte dies verbessert werden, um auch nach diesen Eigenschaften zu suchen, denen der Name der Anwendung oder der zur Laufzeit erkannte Kontextstamm vorangestellt wird, um Namenskonflikte zu vermeiden, wenn mehrere Instanzen derselben EAR bereitgestellt werden.
Sie können, aber Sie verlieren hohe Verfügbarkeit, wenn Sie Cluster verwenden. Siehe: http://docs.oracle.com/cd/E11035_01/wls100/jndi/jndi.html#wp475702
Aber wenn ich es in web.xml einfügen, müssen alle Änderungen neu erstellt und neu implementiert werden. Es ist seltsam, dass ich die JDBC-Konfiguration auf den Server stellen kann, so dass Änderungen nicht neu erstellt werden müssen, aber ich kann meine benutzerdefinierten Variablen (z. B. Passwort zum Mail-Konto, das in der Mail-Sitzung nicht konfiguriert werden kann) dort nicht speichern müssen sie in meiner Bewerbung behalten. –
müssen das gleiche tun ... wow, das stinkt. – MeBigFatGuy
Sie sollten die Datei plan.xml zum Aktualisieren/Überschreiben der Standardwerte aus der Datei web.xml verwenden –