SAP HANA 数据库连接在控制台应用程序中工作正常,但同样的事情在服务中不起作用
SAP HANA DB connection works fine in console application, but same thing is not working from service
SAP HANA 数据库连接在控制台应用程序中工作正常,但从服务或 Web 应用程序调用时,同样的事情不起作用。
它显示错误,如没有合适的驱动程序。我添加了 ngdbc.jar。
我用过 Websphere8.5 服务器和 java 1.6
Class.forName("com.sap.db.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:sap://hostname:30015/?autocommit=false&user=myuser&password=mypassword");
不要重复上述观点,您的 JDK 将于 2018 年 4 月停止服务,请考虑现在转移到 Java 8。当您说 "DB connection works fine in console application" 时,我假设您的意思是您能够成功测试来自控制台的连接。从您粘贴的片段来看,您的应用程序失败的原因是您没有使用您在 WAS 中配置的数据源,并且测试连接正在使用该数据源。相反,您试图直接访问 DriverManager,这将绕过服务器对 JDBC 的管理,包括连接和语句池。 class 无法加载,因为应用程序 class 路径未配置为直接加载那些 classes。 Java EE 应用程序通常会通过资源引用、@Datasource 或其他方式将您在 WAS 中配置的数据源注入到您的应用程序中。 SO post 解释了 Datasource 和 DriverManager 之间的区别。
SAP HANA 数据库连接在控制台应用程序中工作正常,但从服务或 Web 应用程序调用时,同样的事情不起作用。 它显示错误,如没有合适的驱动程序。我添加了 ngdbc.jar。 我用过 Websphere8.5 服务器和 java 1.6
Class.forName("com.sap.db.jdbc.Driver");
connection = DriverManager.getConnection("jdbc:sap://hostname:30015/?autocommit=false&user=myuser&password=mypassword");
不要重复上述观点,您的 JDK 将于 2018 年 4 月停止服务,请考虑现在转移到 Java 8。当您说 "DB connection works fine in console application" 时,我假设您的意思是您能够成功测试来自控制台的连接。从您粘贴的片段来看,您的应用程序失败的原因是您没有使用您在 WAS 中配置的数据源,并且测试连接正在使用该数据源。相反,您试图直接访问 DriverManager,这将绕过服务器对 JDBC 的管理,包括连接和语句池。 class 无法加载,因为应用程序 class 路径未配置为直接加载那些 classes。 Java EE 应用程序通常会通过资源引用、@Datasource 或其他方式将您在 WAS 中配置的数据源注入到您的应用程序中。 SO post 解释了 Datasource 和 DriverManager 之间的区别。