错误 - oracle.jdbc.pool.OracleDataSource

时间:2013-07-02 11:01:58

标签: oracle connection oracle-adf jdeveloper

我正在尝试使用jDeveloper和oracle sql开发人员开发adf移动应用程序。

我已经连接了jDev和sql。我想填充selectOneChoice comp。我将获取数据。

这是我的连接方法;

package salesorder.application;

import groovy.sql.Sql;

import java.sql.Connection;

import java.sql.PreparedStatement;
import java.sql.SQLException;

import javax.sql.DataSource;

import oracle.adf.share.jndi.InitialContextFactoryImpl;

import oracle.adfmf.framework.api.AdfmfJavaUtilities;

import oracle.jbo.server.InitialContextImpl;

import oracle.jdbc.connector.OracleConnectionManager;
import oracle.jdbc.pool.OracleDataSource;

public class DBConnection {
  public DBConnection() {
    super();
  }


   private static String jdbcUrl = "jdbc:oracle:thin:@10.172.105.37:1521:VIS";
   private static String userid = "***";
   private static String password = "***"; 
   protected static  Connection conn = null;

public static Connection getConnection()throws Exception{
    if (conn == null) {
                try {

                           OracleDataSource ds; ds = new OracleDataSource();
                           ds.setURL(jdbcUrl);
                           conn=ds.getConnection(userid,password);


                } catch (SQLException e) {
                    // if the error message is "out of memory",
                    // it probably means no database file is found
                    System.err.println(e.getMessage());
                }
            }
    return conn;
}

}

这就是我获取数据的方法;

    private void Execute() {
    Trace.log(Utility.ApplicationLogger, Level.INFO, Customers.class, "Execute",
                      "!!!!!!!!!!!!!!!!!In COUNTRY Execute!!!!!!!!!!!!!!!!!!!!!!!!!");
    try{
        Connection conn = DBConnection.getConnection();
        customers.clear();
        conn.setAutoCommit(false);

        PreparedStatement stat= conn.prepareStatement("select cust_account_id,account_name from hz_cust_accounts_all where account_name is not null order by account_name asc"); 

        // fetching customers name
        ResultSet rs = stat.executeQuery();
        Trace.log(Utility.ApplicationLogger, Level.INFO, Customers.class, "Execute",
                             "!!!!!!!!!!!!!!!!!Query Executed!!!!!!!!!!!!!!!!!!!!!!!!!");

        while(rs.next()){
            int id = rs.getInt("CUST_ACCOUNT_ID"); // customer id
            String name = rs.getString("ACCOUNT_NAME"); // customer name
            Customer c = new Customer(id,name);
            customers.add(c);
        }
        rs.close();

        } catch (SQLException e) {
                  System.err.println(e.getMessage());
              } catch (Exception e) {
                  System.err.println(e.getMessage());
              }
    }

当我尝试启动应用程序时,会出现错误。
我不能使用图像。所以


错误

oracle.jdbc.pool.OracleDataSource

我不知道我将如何解决这个问题,我无法弄明白为什么。有什么帮助吗?

1 个答案:

答案 0 :(得分:0)

只是为了澄清 - 您是否尝试使用ADF Mobile(AMX页面)? 如果是这样,那么您无法从客户端将JDBC连接到远程数据库。 您只能将JDBC连接到设备上的本地SQLite DB。 要从远程服务器访问数据,您需要使用Web服务公开这些数据并调用它们。