Frühjahr Jndi-Kontext und PropertyPlaceholderConfigurer
Mit Spring, ich will Lesen einer variable im Kontext von Webspehere.
Lesen Sie eine Environment-Variable in Java-und Websphere
Zum definieren von Daten.... im inneren web.xml
<env-entry>
<env-entry-name>varName</env-entry-name>
<env-entry-value>56</env-entry-value>
<env-entry-type>java.lang.String</env-entry-type>
</env-entry>
Sehen mit java
Context envEntryContext = (Context) new InitialContext().lookup("java:comp/env");
String mydata = (String)envEntryContext.lookup(“varName”);
Aber ich möchte die Daten in meine common.xml wie
<bean id="propertyPlaceholderConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>/WEB-INF/context/servweb.properties</value>
</list>
</property>
<property name="ignoreUnresolvablePlaceholders">
<value>true</value>
</property>
</bean>
vielleicht mit so etwas wie, dass
<constructor-arg>
<jee:jndi-lookup jndi-name="java:comp/env" default-value="data" />
</constructor-arg>
aber mit Kontext für das gleiche tun,
Context envEntryContext = (Context) new InitialContext().lookup("java:comp/env");
String mydata = (String)envEntryContext.lookup(“varName”);
vielleicht so etwas wie:
<constructor-arg>
<jee:jndi-lookup jndi-name="java:comp/env">
<jee:environment>
varName=default
</jee:environment>
</jee:jndi-lookup>
Jemand weiß, der richtige Weg?
Vielen Dank im Voraus
InformationsquelleAutor Kaltresian | 2012-01-25
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie erstellen Sie Ihre eigenen PropertyPlaceholderConfigurer
und dann verwenden Sie es in Ihrem
applicationContext.xml
oder für die Festlegung der Standardwerte in einer properties-Datei
InformationsquelleAutor beny23
Mache ich das gleiche in meiner webapplication aber nicht in der Lage zu Lesen, aus Initialcontext
applicationcontext.xml hat
meine.Eigenschaften hat
versucht zu Lesen
aber der Kontext der Bindung ist nur mit env-Eintrag web.xml nicht aus der properties-Datei
InformationsquelleAutor Anu
Wenn Sie nur wollen, um den Wert einer Variablen, die definiert wurde, in der container-Rahmen und verwenden Sie es als eine Zeichenkette ohne das erstellen einer Platzhalter-Objekt, können Sie Folgendes tun (getestet wurde dies in Tomcat aber wahrscheinlich funktioniert das gleiche im anderen Behälter /JEE Server wie WebSphere):
Definieren Sie die Umgebungsvariablen im Tomcat
context.xml
(oder verwenden Sie Ihre eigenen server-syntax) :In der Spring-XML-Kontext-Datei :
Fügen Sie die jee-namespace, um das root-element :
sowie in den
xsi:schemaLocation
:Nun können Sie problemlos look-up-Wert (beachten Sie, dass Sie nicht haben, um geben Sie die
java:/comp/env
stuff, Spring übernimmt das für Sie):Dann können Sie es verwenden, zum Beispiel übergeben Sie an den Konstruktor der bean eine Referenz :
Den bean erhalten
"hello"
als seine construcotr arg.EDIT :
Wenn das Frühjahr Kontext außerhalb der container (Tomcat, Websphere...) für die integration-Tests, die Suche funktioniert nicht. Also, wenn Sie eine spezielle test-Kontext, fügen Sie einfach die folgenden
String
definition, die wird überschreibt diejee:lookup
und setzen Sie den Wert, den Sie zum testen verwenden möchten :InformationsquelleAutor Pierre Henry
In mein-jndi -.Eigenschaften:
jndi-qconnfactory=jms/QConnFactory
InformationsquelleAutor Dennis