2016-05-04 13 views
0

Ich habe eine alte Spring XML-Konfiguration.Wie konvertiert <jee: jndi-lookup> zu Spring JavaConfig in einer Websphere-Umgebung

<jee:jndi-lookup jndi-name="ree/configuration" cache="true" id="re-properties-config" /> 

in der WebSphere-8 Ich habe einen "Ressourcen Environment Providers" und "Ressourcenumgebung Eintrag" unter dem JNDI-Namen "ree/Konfiguration". Die Referenceables-Klasse ist java.util.Properties.

Mit Xml Config funktioniert alles. "Eintrag der Ressourcenumgebung" von WebSphere, das in einem Eigenschaftenobjekt zugeordnet ist.

Jetzt möchte ich zu Spring JavaConfig migrieren. Was ist die beste Lösung?

Ich versuche dies:

private static Properties jndiProperties() { 
    Properties properties = null; 
    JndiTemplate jndi = new JndiTemplate(); 
    try { 
     properties = (Properties)jndi.lookup("ree/configuration"); 
     LOG.info("JNDI Properties loaded: " + properties); 
    } catch (NamingException e) { 
     LOG.error("NamingException for ree/configuration", e); 
    } 
    return properties; 
} 

aber mit einer Classcast gescheitert. javax.naming.Reference kann nicht auf java.util.Properties werfen

Antwort

1

Sie diesen Code versuchen können Eigenschaften, um das zurück Referenz bilden zu erhalten:

  Reference ref = jndi.lookup("ree/configuration"); 
      Enumeration e = ref.getAll(); 
      while(e.hasMoreElements()) 
      { 
       RefAddr ra = (RefAddr) e.nextElement(); 
       properties.put(ra.getType().toLowerCase(), ra.getContent()); 
      } 

Weitere Beispiele dafür, wie Referenz zu verwenden, versuchen Sie diesen Link: http://www.programcreek.com/java-api-examples/javax.naming.Reference

+0

Ich habe diese Lösung auch gefunden. Ich dachte, es ist etwas komfortabler :-) – UKoehler

+0

OK. Gut zu wissen, dass die vorgeschlagene Antwort tatsächlich für Sie arbeitet. – Sampada