Anfangskontext in einem eigenständigen Java-Programm
Ich bin mit einem JNDI-für die Erstellung von tomcat connection pool. Es funktioniert Super in einer web-Anwendung. Ich glaube, die InitialContext wird von den tomcat-server.
Context initContext = new InitialContext();
Context envContext = (Context)initContext.lookup("java:/comp/env");
dataSource = (DataSource)envContext.lookup("jdbc/testdb");
Aber wenn ich versuche zu nennen, die das gleiche Dienstprogramm von einem standalone-Java-Programm, das von initContext-Objekt null ist. Wie kann ich explizit alle notwendigen Eigenschaften, Kontext-Objekt erwartet.
Fehler : javax.die Benennung.NoInitialContextException: angeben Muss, Klasse
Namen in Umwelt-oder system-Eigenschaft oder als applet parameter, oder
in einer Anwendung Ressource-Datei: java.die Benennung.factory.erste
InformationsquelleAutor der Frage Satish Jonnala | 2013-12-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
Könnten Sie auch erstellen Sie Ihre eigenen benutzerdefinierten Kontext.
Sehen Ausgeführt Bohnen vor Ort, dass mit Application-Server-Datenquellen für mehr details.
UPDATE
Können Sie die Klasse
org.springframework.mock.jndi.SimpleNamingContextBuilder
des Frühlings. z.B.:Setup:
Verwenden:
InformationsquelleAutor der Antwort Paul Vargas
Hier ist ein Beispiel adaptiert von die akzeptierte Antwort, aber tut alles, was inline-um zu vermeiden, zusätzliche Klassen.
InformationsquelleAutor der Antwort Scott Nelson
Gibt es nicht eine Möglichkeit, direkt zu verwenden der Tomcat-Context-Factory finden Sie unter hier für ein wenig mehr Dokumentation über die alternativen. Aber ich empfehle Ihnen versuchen, eine Registrierung ausserhalb von Tomcat...
Könnten Sie den code ändern in Tomcat, auch diese externen RegistryContext und dann beide(s) wäre die Verwendung der gleichen JNDI-provider. Diese Frage scheint sehr ähnlich.
InformationsquelleAutor der Antwort Elliott Frisch
Tomcat bietet Kontext & DataSource-Implementierungen, die Arbeit mit der Klasse InitialContext. Bei Ausführung von Tomcat-Kontext.INITIAL_CONTEXT_FACTORY Eigenschaft zeigen Sie auf der Tomcat-Implementierungen. Wenn es nicht läuft Tomcat, Sie nicht diese Fähigkeit haben... Sie brauchen, um eine Drittanbieter-Bibliothek wie c3p0, die für das Verbindungspooling.
InformationsquelleAutor der Antwort ClickerMonkey