2015-05-08 267 views
0

我試圖將通過Tomcat運行的基於Java的程序連接到CONNX數據庫,但我在標題中看到錯誤。這是我的代碼,去掉一些標識信息:我一直在使用的指令從無法將Java連接到CONNX:java.sql.SQLException:連接被拒絕:連接

String driver = "com.Connx.jdbc.TCJdbc.TCJdbcDriver"; 
    String connectionString = "jdbc:connx:DD=praxav11;Gateway=<server name>"; 
    String user = "<user>"; 
    String pass = "<pass>"; 
    Class.forName(driver); 
    dbConnection = java.sql.DriverManager.getConnection(connectionStr, user, password); 

http://www.connx.com/products/connx/CONNX%2010%20UserGuide/connxcdd32a/opening_a_connection_jdbc_driver.htm

「praxav11」我從DSNR工具了,根據該是我想要的CDD的CDD-DSN,所以我非常確信這是正確的。

對於網關我已經嘗試了服務器名稱和服務器IP。用戶名和密碼我非常有信心是正確的,無論如何我會得到不同的錯誤。

有沒有人有什麼錯誤的建議或嘗試什麼建議?我真的在這個空白,並試圖暴力強制它,但我不能得到它的工作。

完整的錯誤是:

com.$company.DBDataSetException: java.sql.SQLException: Connection refused: connect 
at com.$company.DBDatabase.setConnection(DBDatabase.java:43) 
at em.cabbench.$client.ERPInterface$client.connectToConnx(ERPInterface$client.java:137) 
at em.cabbench.$client.ERPInterface$client.getERPRawMaterialPrice(ERPInterface$client.java:167) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at em.cabbench.RequestTypes.call(RequestTypes.java:1120) 
at em.cabbench.CabBenchSrv.processRequest(CabBenchSrv.java:988) 
at em.cabbench.CabBenchSrv.doGet(CabBenchSrv.java:828) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Unknown Source) 

Caused by: java.sql.SQLException: Connection refused: connect 
at com.Connx.jdbc.TCJdbc.TCJdbcDriver.connect(TCJdbcDriver.java:251) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at com.$company.DBDatabase.setConnection(DBDatabase.java:40) 
... 23 more 

Couldn't connect to CONNX 
java.lang.NullPointerException 
at com.$company.DBDatabase.closeConnection(DBDatabase.java:66) 
at em.cabbench.$client.ERPInterface$client.getERPRawMaterialPrice(ERPInterface$client.java:171) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) 
at java.lang.reflect.Method.invoke(Unknown Source) 
at em.cabbench.RequestTypes.call(RequestTypes.java:1120) 
at em.cabbench.CabBenchSrv.processRequest(CabBenchSrv.java:988) 
at em.cabbench.CabBenchSrv.doGet(CabBenchSrv.java:828) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:617) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:723) 
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103) 
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293) 
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:861) 
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:620) 
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) 
at java.lang.Thread.run(Unknown Source) 

回答

1

我希望數據庫服務器從機器上訪問你所運行的代碼....

+0

它位於同一網絡上,我可以通過資源管理器訪問它,但確保Tomcat能夠連接到它嗎?它可能是一個防火牆阻止它連接? – Joe

0

好點...也許你可以試試這個解決方法,因爲你在Tomcat .. 使用此鏈接
http://tomcat.apache.org/tomcat-7.0-doc/jndi-datasource-examples-howto.html 設置上下文文件中的數據庫資源。 在應用程序的web.xml文件中引用它。 然後編寫一個代碼片段,它查找JNDI並建立連接。 這將通過TomCats的眼睛來確認問題。

在運行代碼之前,不要忘記將包含驅動程序的CONNX jar文件複製到Tomcat主目錄(CATALINA_HOME)的 。

0
Class.forName("com.Connx.jdbc.TCJdbc.TCJdbcDriver").newInstance(); 
TCJdbcDataSource ds = new TCJdbcDataSource(); 
ds.setGateway("<GateWay_IP>"); 
ds.setPort((short)7500); //default port 
ds.setDSN("<Your_DSN_IP>"); 
ds.setUser("<UserName>"); 
Connection con = ds.getConnection(); 
Statement st = con.createStatement(); 
ResultSet rs = st.executeQuery(sql); 
相關問題