2016-07-30 27 views
0

Ich habe die Datei fscontext.jar von here heruntergeladen und in meinen Klassenpfad eingefügt.DataSource-Objekt vom JNDI-Kontext in einer eigenständigen Java-Anwendung abrufen?

Dies ist der Code, den ich habe:

import javax.naming.*; 
import java.io.File; 

public class JNDIHello { 

    final static String URL = 
      "file:///Users/Koray Tugay/Development/studentform/src/main/java/biz/tugay"; 
    final static String CONTEXT_FACTORY 
      = "com.sun.jndi.fscontext.RefFSContextFactory"; 

    static { 
     System.setProperty(javax.naming.Context.INITIAL_CONTEXT_FACTORY, CONTEXT_FACTORY); 
     System.setProperty(Context.PROVIDER_URL, URL); 
    } 

    public static void main(String[] args) throws Exception { 
     final InitialContext context = new InitialContext(); 
     final File file = (File) context.lookup("TestClass.java"); 
     System.out.println("File exists? " + file.exists()); 
    } 
} 

Der Ausgang wird sein:

File exists? true 

Das ist sehr gut. Ich verwende RefFSContextFactory zusammen mit JNDI, um Dateiobjekte aus dem Kontext zu erhalten.

Was ich tun möchte, ist in der Lage, DataSource Objekte zu erhalten, wie in Web-Anwendungen. Ein Beispiel kann here gesehen werden.

Ich habe bereits h2db in meinem lokalen ausgeführt wird, und die Eigenschaften für sie ist wie folgt:

<?xml version='1.0' encoding='utf-8'?> 
<Context> 
    <Resource name="jdbc/studentform" auth="Container" type="javax.sql.DataSource" 
       maxActive="5" maxIdle="10" maxWait="10000" 
       username="sa" password="" driverClassName="org.h2.Driver" 
       url="jdbc:h2:tcp://localhost:9092/~/h2dbs/studentform"/> 
</Context> 

Aber was jndi Fabrik Umsetzung soll ich verwenden und wie definiere ich die URL in einer Standalone-Java-Anwendung?

Antwort

0

Sie benötigen einen Container, um Ihre Anwendung auszuführen und sie mit Diensten wie Datenquellenverwaltung usw. zu versorgen. Spring Framework ist die erste, die in solchen Fällen in den Sinn kommt. Sie können damit einen IoC-Container erstellen, der Ihre Abhängigkeiten verwaltet, including data sources. Es hat auch Spring Boot Unterprojekt, das ermöglicht, runnable Module einfacher zu erstellen.