【问题标题】:Getting DataSource object from JNDI context in a Standalone Java Application?在独立 Java 应用程序中从 JNDI 上下文获取 DataSource 对象?
【发布时间】:2016-12-04 23:30:50
【问题描述】:

我从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 从上下文中获取 File objects

我想要做的是能够获得 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?

【问题讨论】:

    标签: java datasource jndi


    【解决方案1】:

    您需要一些容器来运行您的应用程序并为其提供数据源管理等服务。Spring Framework 是在这种情况下首先想到的。它允许您创建一个 IoC 容器来管理您的依赖项,including data sources。它还有Spring Boot 子项目,可以更轻松地创建可运行的模块。

    【讨论】:

      猜你喜欢
      • 2012-07-25
      • 1970-01-01
      • 2023-04-11
      • 2013-12-20
      • 1970-01-01
      • 1970-01-01
      • 2011-01-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多