2011-01-31 113 views
2

我很难连接到Oracle数据库OJDBC。GWT - Oracle JDBC连接问题

Error:  

“无法连接到数据库异常消息:I/O错误:网络适配器不能够建立连接”使用谷歌Web工具包

I'm和我添加了一个SQL数据库到我的项目。
数据库名称是Agenda。

我查了很多,看起来这个问题对很多人来说都很常见,但是无法克服这个问题。 我已经下载了“ojdbc6.jar”并添加到我的BUILDPATH中。
我刷新,关闭,打开并重新打开,但我仍然看到错误。

我的规格:
Windows 7的64位
SpringSource的 - 也尝试在Eclipse

private static final long serialVersionUID = 1L; 
private Connection connection = null; 
private Properties props = null; 
private ClassLoader cl = null; 
private String databaseURL = ""; 
private String databaseUser = ""; 
private String databasePass = ""; 
public void init() { 
    try { 
     // Load the database connection properties from com.gwt.agenda.GWTAgendaSample.properties 
     props = new Properties(); 
     cl = this.getClass().getClassLoader(); 
     InputStream is = cl.getResourceAsStream("com/gwt/agenda/GWTAgendaSample.properties"); 
     props.load(is); 
     // Load the database access information 
     databaseURL = props.getProperty("databaseURL"); 
     databaseUser = props.getProperty("databaseUser"); 
     databasePass = props.getProperty("databasePass"); 
    } catch (Exception e) { 
     e.printStackTrace(); 
     logger.error("Error loading GWTAgendaSample.properties file.", e); 
    } 
    try { 
     Class.forName("oracle.jdbc.driver.OracleDriver"); 
     // Connect to the database 
     connection = DriverManager.getConnection(databaseURL, databaseUser, databasePass); 
    } catch (SQLException se) { messageOut = "Unable to connect to database. Exception message: " + se.getMessage(); 
     System.out.println(messageOut); 
     se.printStackTrace(); 
     // Server side log 
     logger.error(messageOut + "\n", se); 
     destroy(); 
    } catch (Exception e) { 
     messageOut = "Unable to connect to database. Exception message: " + e.getMessage(); 
     System.out.println(messageOut); 
     e.printStackTrace(); 
     // Server side 
     logger.error(messageOut + "\n", e); 
     destroy(); 
    } 
} 

有人点我在正确的方向。 我错过了什么?

请帮忙!

编辑!

Unable to connect to database. Exception message: Erro de E/S: The Network Adapter could not establish the connection 
java.sql.SQLRecoverableException: Erro de E/S: The Network Adapter could not establish the connection 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:419) 
    at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:536) 
    at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:228) 
    at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:32) 
    at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:521) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at java.sql.DriverManager.getConnection(Unknown Source) 
    at com.gwt.Agenda.server.GreetingServiceImpl.init(GreetingServiceImpl.java:78) 
    at javax.servlet.GenericServlet.init(GenericServlet.java:212) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:433) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:342) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:463) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:362) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:729) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.java:49) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:324) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:647) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488) 
Caused by: oracle.net.ns.NetException: The Network Adapter could not establish the connection 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:375) 
    at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:422) 
    at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:678) 
    at oracle.net.ns.NSProtocol.connect(NSProtocol.java:238) 
    at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:1054) 
    at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:308) 
    ... 27 more 
Caused by: java.net.ConnectException: Connection refused: connect 
    at java.net.PlainSocketImpl.socketConnect(Native Method) 
    at java.net.PlainSocketImpl.doConnect(Unknown Source) 
    at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
    at java.net.PlainSocketImpl.connect(Unknown Source) 
    at java.net.SocksSocketImpl.connect(Unknown Source) 
    at java.net.Socket.connect(Unknown Source) 
    at oracle.net.nt.TcpNTAdapter.connect(TcpNTAdapter.java:209) 
    at oracle.net.nt.ConnOption.connect(ConnOption.java:123) 
    at oracle.net.nt.ConnStrategy.execute(ConnStrategy.java:353) 
    ... 32 more 

Unable to connect to database. Exception message: Listener refused the connection with the following error: ORA-12505, TNS:listener does not currently know of SID given in connect descriptor

+1

什么是你的连接网址是什么? – 2011-01-31 21:02:16

+1

databaseURL = jdbc:oracle:thin:@ hp-PC:1521:议程 databaseUser =用户 databasePass =议程其中@ hp-PC是我的计算机名称,议程是我的数据库名称 – Martinho 2011-01-31 21:24:23

+1

是否是Oracle侦听器已启动并正在运行? – 2011-01-31 21:32:29

回答

2

听起来好像您的连接被Oracle数据库拒绝。你确定你的Oracle数据库已经启动并正在运行吗?我很久以前就有过类似的问题,并且认为没有必要安装MYSQL数据库来运行示例。我错了,必须安装才能使其运行。

1

通常我看到这种格式错误我的数据库URL是驱动程序有问题还是我的用户名和密码不正确或不正确地传递。

我所做的是使用数据库插件的IDE连接到数据库,并使用与我的代码使用的驱动程序相同的驱动程序,并在尝试连接代码之前使用该插件。

2

这个错误发生在很多cicumstances:

  1. 没有TNS监听器配置
  2. TNS-Listerner confugured但在连接URL
  3. 不止一个TNSNAMES没有运行
  4. 错误TNS名称。系统路径中的ORA

我对Oracle有很多乐趣。 尝试tnsping来验证您的数据库已连接并运行。