2011-01-31 3 views
2

Oracle 데이터베이스 OJDBC에 연결하는 데 큰 어려움이 있습니다.GWT - Oracle JDBC 연결 문제

Error:  

". : I/O 오류 : 데이터베이스 예외 메시지에 연결할 수 없습니다 네트워크 어댑터 연결을 구축 할 수 없습니다"구글 웹 툴킷 (Google Web Toolkit)를 사용하여

미안하고 내가 SQL 데이터베이스에 추가 내 프로젝트에.
데이터베이스 이름은 의제입니다.

나는 많은 것을 수색했는데,이 문제는 많은 사람들에게 공통적이지만,이 문제를 극복하지 못했습니다. "ojdbc6.jar"을 다운로드하고 BUILDPATH에 추가했습니다.
새로 고침하고 닫았다가 다시 열었지만 오류가 계속 표시됩니다.

내 사양 :
윈도우 7 64
스프링 소스는 - 사람이 올바른 방향으로 날 지점 수

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(); 
    } 
} 

이클립스

도 시도했다. 내가 누락 된 것이 있습니까?

도와주세요!

편집 됨 !! 내 DB URL이 심하게 문제의 드라이버 형식 또는 사용자 이름과 암호가 잘못되거나 잘못 전달되는 경우

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

연결 URL이 무엇입니까? –

+1

databaseURL = jdbc : oracle : thin : @ hp-PC : 1521 : Agenda databaseUser = user databasePass = agenda 여기서 @ hp-PC는 내 컴퓨터 이름이고 Agenda는 데이터베이스 이름입니다. – Martinho

+1

은 오라클 리스너입니다. –

답변

2

오라클 데이터베이스에서 연결이 거부 된 것 같습니다. Oracle 데이터베이스가 정상적으로 실행되고 있습니까? 오래 전에 비슷한 문제가 있었고 예제를 실행하기 위해 MYSQL 데이터베이스를 설치하지 않아도된다고 생각합니다. 나는 틀렸고 그것을 설치하기 위해 설치해야했다.

+0

네 말이 맞아. Oracle Database를 설치하지 않았습니까? 나는 그것이 필요하다고 생각한 적이 없었다. 그것이 오류를주는 이유입니다. 일단 Postgres 데이터베이스를 설치하고 코드를 수정하면 불필요한 아티팩트없이 작동합니다. 감사 – Martinho

1

보통 나는이를 참조하십시오.

내가하고있는 일은 db 용 db 플러그인을 사용하고 코드와 연결하기 전에 내 코드가 사용하고 사용할 드라이버와 동일한 드라이버를 사용하는 것입니다.

+0

경고 및 오류를 편집하고 게시했습니다. 아마도 이것은 에로스의 원인을 이해하는 데 도움이 될 수 있습니다. – Martinho

+0

오류는 SID를 인식하지 못함을 나타냅니다. http://serverfault.com/questions/49509/oracle-difference-between-sid-db-name-db-domain-global-database-name-service – Speck

2

이 오류는 제비 cicumstances에서 발생

  1. 없음 TNS 리스너는
  2. TNS-Listerner이 confugured 구성되어 있으나 연결 URL
  3. 이상의 TNSNAMES에
  4. 잘못된 TNS 이름을 실행하지. 시스템 경로의 ORA

오라클은 많은 재미를 느꼈습니다. tnsping을 시도하여 데이터베이스에 커넥터가 설치되어 실행되고 있는지 확인하십시오.

+0

죄송합니다. TnsPing을 수행하는 방법을 잘 이해하지 못합니다. DOS 창을 열고 ping을 한 다음 다른 매개 변수는 무엇입니까? 감사. – Martinho

+0

C : \ oraclexe \ app \ oracle \ product \ 10.2.0 \ server \ network \ admin \ sqlnet.ora 별명을 해결하기 위해 HOSTNAME 어댑터를 사용했습니다. 문의하려고했습니다 (DESCRIPTION = (CONNCET_DATA = (SERVICE_NAME =)) (ADRESS = (PROTOCOL = TCP) (HOST = 127.0.0.1) PORT = 1521))) OK (10 밀리 초) 이 맞습니까? – Martinho

+0

SERVICE_NAME이 누락되었지만 ORACLE-professional이 아닙니다. 호스트가 호스트 명일 필요가 있습니다. 그렇지 않은 경우, 접속은 localhost에 제한 될 가능성이 있습니다. –