2017-06-21 93 views
0

我試圖從將要在Webpehere 7服務器中運行的動態項目中的java代碼連接到Microsoft SQL Server。從java連接ms sql服務器時收到錯誤

below is my java code: 
{ 
Connection conn = null; 
     System.out.println(System.getProperty("java.version")); 
     System.out.println(ManagementFactory.getRuntimeMXBean().getVmVersion()); 


      try { 
       Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
      } catch (ClassNotFoundException e) { 
       e.printStackTrace(); 
      } 
      String dbURL = "jdbc:sqlserver://IP:51433;database=SCB_Recon_04032017"; 
      String user = "uName"; 
      String pass = "password"; 
      conn = DriverManager.getConnection(dbURL, user, pass); 
} 

注意:當我運行這個作爲java應用程序(獨立運行java類)連接正確建立。但是,當我在webpehere 7服務器上運行這個時,我得到了異常。

{[21/6/17 16:41:07:170 IST] 0000001c SystemErr  R com.microsoft.sqlserver.jdbc.SQLServerException: The driver could not establish a secure connection to SQL Server by using Secure Sockets Layer (SSL) encryption. Error: "SQL Server did not return a response. The connection has been closed.". 
[21/6/17 16:41:07:171 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.SQLServerConnection.terminate(SQLServerConnection.java:1368) 
[21/6/17 16:41:07:171 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.TDSChannel.enableSSL(IOBuffer.java:1412) 
[21/6/17 16:41:07:171 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.SQLServerConnection.connectHelper(SQLServerConnection.java:1058) 
[21/6/17 16:41:07:172 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.SQLServerConnection.login(SQLServerConnection.java:833) 
[21/6/17 16:41:07:172 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.SQLServerConnection.connect(SQLServerConnection.java:716) 
[21/6/17 16:41:07:172 IST] 0000001c SystemErr  R  at com.microsoft.sqlserver.jdbc.SQLServerDriver.connect(SQLServerDriver.java:841) 
[21/6/17 16:41:07:173 IST] 0000001c SystemErr  R  at java.sql.DriverManager.getConnection(DriverManager.java:419) 
[21/6/17 16:41:07:173 IST] 0000001c SystemErr  R  at java.sql.DriverManager.getConnection(DriverManager.java:467) 
[21/6/17 16:41:07:173 IST] 0000001c SystemErr  R  at com.eeft.scbfileupload.sql.connection.JdbcSQLServerConnection.getConnection(JdbcSQLServerConnection.java:31) 
[21/6/17 16:41:07:174 IST] 0000001c SystemErr  R  at com.eeft.scbfileupload.api.ScbFileUploadAPIBase.getAllTemplateTypesList(ScbFileUploadAPIBase.java:23) 
[21/6/17 16:41:07:175 IST] 0000001c SystemErr  R  at com.eeft.scbfileupload.bo.ScbFileUploadBO.getAllTemplateTypesList(ScbFileUploadBO.java:20) 
[21/6/17 16:41:07:184 IST] 0000001c SystemErr  R  at com.eeft.scbfileupload.servlet.SCBFileUploadMainServlet.doGet(SCBFileUploadMainServlet.java:35) 
[21/6/17 16:41:07:184 IST] 0000001c SystemErr  R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:718) 
[21/6/17 16:41:07:186 IST] 0000001c SystemErr  R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:831) 
[21/6/17 16:41:07:186 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1700) 
[21/6/17 16:41:07:187 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:970) 
[21/6/17 16:41:07:187 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:508) 
[21/6/17 16:41:07:189 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:181) 
[21/6/17 16:41:07:189 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.webapp.WebApp.handleRequest(WebApp.java:3994) 
[21/6/17 16:41:07:189 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.webapp.WebGroup.handleRequest(WebGroup.java:276) 
[21/6/17 16:41:07:190 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:945) 
[21/6/17 16:41:07:191 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1592) 
[21/6/17 16:41:07:191 IST] 0000001c SystemErr  R  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:191) 
[21/6/17 16:41:07:191 IST] 0000001c SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454) 
[21/6/17 16:41:07:191 IST] 0000001c SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:516) 
[21/6/17 16:41:07:192 IST] 0000001c SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:307) 
[21/6/17 16:41:07:198 IST] 0000001c SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:278) 
[21/6/17 16:41:07:199 IST] 0000001c SystemErr  R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
[21/6/17 16:41:07:201 IST] 0000001c SystemErr  R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
[21/6/17 16:41:07:201 IST] 0000001c SystemErr  R  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
[21/6/17 16:41:07:202 IST] 0000001c SystemErr  R  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
[21/6/17 16:41:07:202 IST] 0000001c SystemErr  R  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
[21/6/17 16:41:07:202 IST] 0000001c SystemErr  R  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
[21/6/17 16:41:07:202 IST] 0000001c SystemErr  R  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
[21/6/17 16:41:07:203 IST] 0000001c SystemErr  R  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
[21/6/17 16:41:07:203 IST] 0000001c SystemErr  R  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
[21/6/17 16:41:07:203 IST] 0000001c SystemErr  R  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1662) 
    } 
+0

不應該像這樣在應用程序服務器內連接數據庫。應使用服務器提供的設施(數據源,JNDI)。在Java EE中閱讀有關數據庫連接的內容。 – fnt

回答

1

在IBM WebSphere Application Server中默認啓用SSLv3。 These fixes將完全禁用SSLv3。

另外,如果您不想禁用WebSphere上的SSLv3支持,則可以下載Microsoft SQLJDBC driver hotfix以更正使用SSL的工作。在這種情況下你需要configure MSSQL to enable SSL

請參閱here瞭解更多信息。

+0

謝謝你邁克爲你的快速答案。像這樣的東西是我正在尋找。將檢查和更新。 – Naren