通过ojdbc14.jar将Lotus java代理连接到jdbc连接的tns连接问题

时间:2016-01-22 13:17:10

标签: java jdbc lotus-notes lotus-domino lotusscript

当我尝试连接oracle数据库时,我遇到以下错误,而我已成功通过lotusscript代理中的LCConnection类连接到该数据库

[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: before connection:::::
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: inside dobi
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: inside dobi 2
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: java.sql.SQLException: Listener refused the connection with the following error:
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: The Connection descriptor used by the client was:
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: 10.12.14.139:1510:hst
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:125)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:280)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:319)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:344)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:148)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:545)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at java.sql.DriverManager.getConnection(DriverManager.java:419)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at java.sql.DriverManager.getConnection(DriverManager.java:467)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at JavaAgent.getConnection(Unknown Source)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at JavaAgent.NotesMain(Unknown Source)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at lotus.domino.AgentBase.runNotes(Unknown Source)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at lotus.domino.NotesThread.run(Unknown Source)
[13C0:0499-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: after connection:::::
[13C0:049A-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: Exception in thread "AgentThread: JavaAgent" 
[13C0:049B-11BC] 01/22/2016 06:18:09 PM  HTTP JVM: java.lang.NullPointerException
[13C0:049D-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at JavaAgent.NotesMain(Unknown Source)
[13C0:049F-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at lotus.domino.AgentBase.runNotes(Unknown Source)
[13C0:04A1-11BC] 01/22/2016 06:18:09 PM  HTTP JVM:  at lotus.domino.NotesThread.run(Unknown Source)

我在这里错过了什么。我正在使用ojdbc14.jar并将其放置在java构建路径中以及莲花笔记的路径C:\Lotus\Domino\jvm\lib\ext中。请帮助我。

我在lotus java agent中使用以下代码:

import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;


import lotus.domino.*;

public class JavaAgent extends AgentBase {

    private static final String DB_DRIVER_CLASS = "oracle.jdbc.driver.OracleDriver";
    private static final String DB_URL = "jdbc:oracle:thin:@10.12.14.139:1510:hst";
    private static final String DB_USERNAME = "usname";
    private static final String DB_PASSWORD = "password";

    public static Connection getConnection() {
        Connection con = null;
        try {
            System.out.println("inside dobi");
            // load the Driver Class
            Class.forName(DB_DRIVER_CLASS);
            System.out.println("inside dobi 2");
            // create the connection now
            con = DriverManager.getConnection(DB_URL,DB_USERNAME,DB_PASSWORD);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (SQLException e) {
            e.printStackTrace();
        }
        return con;
    }


    public void NotesMain() {
        Connection con = null;
        CallableStatement stmt = null;
        try {
            Session session = getSession();
            AgentContext agentContext = session.getAgentContext();
            System.out.println("before connection:::::");
            con = JavaAgent.getConnection();
            System.out.println("after connection:::::");
            //stmt = con.prepareCall("{call insertEmployee(?,)}");
        } catch(Exception e) {
            e.printStackTrace();
        }finally{
            try {
                stmt.close();
                con.close();
            } catch (SQLException e) {
                e.printStackTrace();
            }
        }
    }
}

0 个答案:

没有答案