1

我试图对 Weblogic 10.3.5 中的数据源进行 JNDI 查找。

我有以下代码:

    try {
    //jbInit();

    env.put(javax.naming.Context.INITIAL_CONTEXT_FACTORY,"weblogic.jndi.WLInitialContextFactory");
    env.put(javax.naming.Context.PROVIDER_URL,"t3://localhost:7001");

    try {
        Context ctx = new InitialContext(env);
        javax.sql.DataSource ds = (javax.sql.DataSource) ctx.lookup("jdbc/sandboxDS");
        conn = ds.getConnection();
    } catch(Exception e){
        e.printStackTrace();
    }

    if(conn != null){
        System.out.println("Got connection...");

        String colDescQuery =
        "select column1 from my_table where table_name = 'your_table' order by col_order_no";
        Statement colDescStmt = conn.createStatement();
        ResultSet colDescRS = colDescStmt.executeQuery(colDescQuery);

        while (colDescRS.next()) {
        System.out.println(colDescRS.getString(1));
        }                 

    } else {
        System.out.println("No connection...");
    }
} catch (Exception e) {
    e.printStackTrace();
}

当我将此代码作为独立的 Java 程序运行时,它可以完美运行。找到连接并且查询返回预期结果。

当我在一个小程序中使用相同的代码并从 JDeveloper 小程序查看器中运行它时,它会在 InitialContext 被实例化的地方挂起。没有抛出异常,它只是挂起永远不会返回。

关于这里发生了什么的任何想法?我的类路径中有 weblogic.jar 和 wlthint3client.jar 用于两次运行。

谢谢...

4

1 回答 1

0

小程序有沙盒限制,因此它们无法连接到下载位置以外的服务器。

确保您的小程序也部署到您的 JNDI 数据源所在的同一 WebLogic Server。

于 2012-12-12T19:04:05.867 回答