我从here下载了fscontext.jar文件并将其放在我的类路径中。
这是我的代码:
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());
}
}
输出将是:
File exists? true
这很棒。我正在使用RefFSContextFactory和JNDI从上下文中获取文件对象。
我想要做的是能够获得 DataSource 对象,就像在Web应用程序中一样。可以看到一个例子here。
我已经在我的本地运行了h2db,其属性如下:
<?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>
但是我应该使用什么jndi Factory实现,以及如何在独立的Java应用程序中定义URL?
答案 0 :(得分:0)
您需要一些容器来运行您的应用程序并为其提供数据源管理等服务。Spring Framework是在这种情况下首先想到的。including data sources。它允许您创建一个IoC容器来管理您的依赖项Spring Boot。它还有https://www.youtube.com/watch?v=Cc3K2jDdKTo&list=UUVTlvUkGslCV_h-nSAId8Sw&index=97子项目,可以更轻松地创建可运行模块。