使用JDBC连接到SAP Cloud Platform中的HANA数据库实例

2020-08-20 21:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我遵循了SAP博客(↓)中显示的这些步骤。 但是在SCP中部署后,它无法连接Hana数据库。

错误如下所示。 我该怎么办?

环境:

参考链接:

https://blogs.sap.com/2018/05/18/use-jdbc-to-connect-to-hana-database-instance-in-sap-cloud-platform/#jdbc

https://help.sap.com/viewer/ 65de2977205c403bbc107264b8eccf4b/Cloud/zh-CN/e4c52854bb571014aeb88753d0dad158.html

错误:

为servlet分配异常[PersistenceWithJDBCServlet] java.lang.NullPointerException:尝试调用从com.sybase.jdbc4的方法的第一个参数加载的空对象的方法java.lang.String.indexOf(int)时 位于org.apache.tomcat.dbcp.dbcp2.DriverFactory.createDriver(DriverFactory.java:60)的java.sql.DriverManager.getDriver(DriverManager.java:299)的.jdbc.SybDriver.acceptsURL(SybDriver.java:266) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.java:472上的org.apache.tomcat.dbcp.dbcp2.BasicDataSource.java:472上的org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:538)上的org.apache.tomcat.dbcp。 com.sap.cloud.sample.persistence.PersonDAO.checkTable(PersonDAO.java:92)上的dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753)在com.sap.cloud.sample.persistence.PersonDAO.setDataSource(PersonDAO。 java:37)com.sap.cloud.sample.persistence.PersonDAO。(PersonDAO.java:22)com.sap.cloud.sample.persistence.PersistenceWithJDBCServlet.ini 在org.apache.catalina.core上的javax.servlet.GenericServlet.init(GenericServlet.java:158)上的t(PersistenceWithJDBCServlet.java:40)在org.apache.catalina.core上的org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144) org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:763)的org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)的.StandardWrapper.loadServlet(StandardWrapper.java:1091) org.apache.catalina上的com.sap.core.connectivity.jco.session.ext.RequestTracker.invoke(RequestTracker.java:55)上的org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)。 com.sap.cloud.runtime.impl.bridge.security.AbstractAuthenticator.invoke(AbstractAuthenticator.java:206)上的authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543),位于com.sap.cloud.runtime.kotyo.tomcat上。 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)的support.CookieValve.invoke(CookieValve.java:38) es.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)位于org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)位于com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve。 182),位于com.sap.js.statistics.tomcat.valve.RequestTracingValve.callNextValve(RequestTracingValve.java:113)处com.sap.js.statistics.tomcat.valve.RequestTracingValve.callNextValve(RequestTracingValve.java:113)处com.sap.core.tenant.valve.TenantValidationValve.invoke org.apache.catalina上的com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)上的.js.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:59) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)处的.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) )在org.apache.coyote.AbstractProcesso上的http11.Http11Processor.service(Http11Processor.java:609) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:810)处的rLight.process(AbstractProcessorLight.java:65)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java: 1623)在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor $ Worker org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)处的.run(ThreadPoolExecutor.java:624)

最好的问候,
Thiri

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


专家们,

我遵循了SAP博客(↓)中显示的这些步骤。 但是在SCP中部署后,它无法连接Hana数据库。

错误如下所示。 我该怎么办?

环境:

参考链接:

https://blogs.sap.com/2018/05/18/use-jdbc-to-connect-to-hana-database-instance-in-sap-cloud-platform/#jdbc

https://help.sap.com/viewer/ 65de2977205c403bbc107264b8eccf4b/Cloud/zh-CN/e4c52854bb571014aeb88753d0dad158.html

错误:

为servlet分配异常[PersistenceWithJDBCServlet] java.lang.NullPointerException:尝试调用从com.sybase.jdbc4的方法的第一个参数加载的空对象的方法java.lang.String.indexOf(int)时 位于org.apache.tomcat.dbcp.dbcp2.DriverFactory.createDriver(DriverFactory.java:60)的java.sql.DriverManager.getDriver(DriverManager.java:299)的.jdbc.SybDriver.acceptsURL(SybDriver.java:266) org.apache.tomcat.dbcp.dbcp2.BasicDataSource.java:472上的org.apache.tomcat.dbcp.dbcp2.BasicDataSource.java:472上的org.apache.tomcat.dbcp.dbcp2.BasicDataSource.createDataSource(BasicDataSource.java:538)上的org.apache.tomcat.dbcp。 com.sap.cloud.sample.persistence.PersonDAO.checkTable(PersonDAO.java:92)上的dbcp2.BasicDataSource.getConnection(BasicDataSource.java:753)在com.sap.cloud.sample.persistence.PersonDAO.setDataSource(PersonDAO。 java:37)com.sap.cloud.sample.persistence.PersonDAO。(PersonDAO.java:22)com.sap.cloud.sample.persistence.PersistenceWithJDBCServlet.ini 在org.apache.catalina.core上的javax.servlet.GenericServlet.init(GenericServlet.java:158)上的t(PersistenceWithJDBCServlet.java:40)在org.apache.catalina.core上的org.apache.catalina.core.StandardWrapper.initServlet(StandardWrapper.java:1144) org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:763)的org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134)的.StandardWrapper.loadServlet(StandardWrapper.java:1091) org.apache.catalina上的com.sap.core.connectivity.jco.session.ext.RequestTracker.invoke(RequestTracker.java:55)上的org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)。 com.sap.cloud.runtime.impl.bridge.security.AbstractAuthenticator.invoke(AbstractAuthenticator.java:206)上的authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:543),位于com.sap.cloud.runtime.kotyo.tomcat上。 位于org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)的support.CookieValve.invoke(CookieValve.java:38) es.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)位于org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)位于com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve。 182),位于com.sap.js.statistics.tomcat.valve.RequestTracingValve.callNextValve(RequestTracingValve.java:113)处com.sap.js.statistics.tomcat.valve.RequestTracingValve.callNextValve(RequestTracingValve.java:113)处com.sap.core.tenant.valve.TenantValidationValve.invoke org.apache.catalina上的com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)上的.js.statistics.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:59) org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)处的.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)在org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343) )在org.apache.coyote.AbstractProcesso上的http11.Http11Processor.service(Http11Processor.java:609) org.apache.coyote.AbstractProtocol $ ConnectionHandler.process(AbstractProtocol.java:810)处的rLight.process(AbstractProcessorLight.java:65)org.apache.tomcat.util.net.NioEndpoint $ SocketProcessor.doRun(NioEndpoint.java: 1623)在org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)在java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)在java.util.concurrent.ThreadPoolExecutor $ Worker org.apache.tomcat.util.threads.TaskThread $ WrappingRunnable.run(TaskThread.java:61)处的.run(ThreadPoolExecutor.java:624)

最好的问候,
Thiri

付费偷看设置
发送
4条回答
大道至简
1楼-- · 2020-08-20 22:08

您好尊尼哥

错误堆栈引用了包com.sybase.jdbc4.jdbc。 SybDriver-适用于Sybase ASE。 但是,您的问题主题是Neo上的HANA数据库。

此外,您是否将数据库绑定到应用程序? 这样Neo便知道如何将资源引用jdbc/DefaultDB转换为具有适当凭据的数据库连接。

我不确定您如何到达那里,您不必加载任何数据库驱动程序 如果您已按照本教程进行操作。 您通过驾驶舱进行的数据库绑定将指示Neo要求进行哪个数据库连接。 因此,DataSource类将能够使用基础框架执行getConnection方法。

除了它,您还可以检查Neo SDK上的samples文件夹。 在此应该找到一个名为" persistence-with-jdbc"的文件夹-这是一个有关如何通过JDBC连接处理持久性开发的示例。 对于托管JPA连接,您也有一个类似的项目。 即使使用JPA,您仍然必须将数据库与应用程序绑定。

最好的问候,
Ivan

能不能别闹
2楼-- · 2020-08-20 22:11

请指定您是Neo还是Cloud 铸造环境。 还请注意,这是一个纯HANA数据库,而不是S/4HANA。

骆驼绵羊
3楼-- · 2020-08-20 22:18

嗨,格雷戈尔,

表示感谢。 更正了问题。

此致

Thiri

me_for_i
4楼-- · 2020-08-20 22:20

Hi Ivan,

感谢您的支持。 赞赏。

我现在可以正确连接。 我所做的是将ngdbc.jar文件添加到该项目的'WebContent/WEB-INF/lib'文件夹中。 然后,再次部署→绑定,然后就可以使用了。

最好的问候

Thiri

一周热门 更多>