Java 为什么可以';我不能在小程序中获取远程数据源吗?

Java 为什么可以';我不能在小程序中获取远程数据源吗?,java,oracle,applet,weblogic,jndi,Java,Oracle,Applet,Weblogic,Jndi,我试图在WebLogic10.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 {

我试图在WebLogic10.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程序运行这段代码时,它工作得非常好。找到连接,查询返回预期结果

当我在applet中使用相同的代码并从JDeveloper applet查看器运行它时,它挂起在初始化上下文的地方。没有抛出异常,它只是挂起再也不会返回

你知道这里发生了什么吗?对于这两次运行,我的类路径中都有weblogic.jar和wlthint3client.jar


谢谢…

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


确保小程序也部署到JNDI数据源所在的WebLogic服务器上。

谢谢。代码是从JDeveloper小程序查看器运行的,因此沙箱限制不存在。对于真正的部署,我计划对applet进行签名。您确定JDeveloper没有对applet使用沙盒吗?默认情况下,小程序查看器在最近一段时间内不会执行此操作。