无法使用Java连接到SCP内部的HANA数据库。

2020-09-14 02:29发布

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

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


亲爱的

我整天都在努力找出问题的根本原因,我真的相信您可以在这个问题上为我提供帮助!

我有一个使用Spring和Hibernate连接到HANA数据库的Java应用程序。 我正在SCP内运行它,并配置了应用程序与数据库的绑定:

这是我在应用程序内部配置JNDI查找的方式:

Spring配置文件:

 @Profile({" dev"," qa"," prod"})

 @ Bean @ Resource(名称=" jdbc/DefaultDB")

 公共数据源dataSource()抛出GeneralException {
   尝试{
        最终的JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();  dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource(" java:comp/env/jdbc/DefaultDB");
        返回dataSource;
       } catch(Exception e){
               String errorDetails ="加载数据源时出错(dev,qa,prod配置文件)-" + SpringConfiguration.class.getName();
                logger.error(errorDetails,e);
                 抛出新的GeneralException(errorDetails,e);
  }} 

src/webapp/WEB-INF/web.xml:

 <?xml version =" 1.0" encoding =" UTF-8"?>

 

  <资源参考>
      jdbc/DefaultDB 
      javax.sql.DataSource 
  

  

src/main/resources/META_INF/context.xml:

 <?xml version =" 1.0" encoding =" UTF-8"?>

 

 

 

  

当我尝试在SCP上运行它时,我不断收到此错误:

 org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException:无法查找名称为'java:comp/env/jdbc/DefaultDB'的JNDI DataSource; 嵌套的异常是javax.naming.NameNotFoundException:此上下文中未绑定名称[jdbc/DefaultDB]。 找不到[jdbc]。

有人对可能发生的事情有所了解吗? 我真的用光了这里的选项。

(7.2 kB)

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

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


亲爱的

我整天都在努力找出问题的根本原因,我真的相信您可以在这个问题上为我提供帮助!

我有一个使用Spring和Hibernate连接到HANA数据库的Java应用程序。 我正在SCP内运行它,并配置了应用程序与数据库的绑定:

这是我在应用程序内部配置JNDI查找的方式:

Spring配置文件:

 @Profile({" dev"," qa"," prod"})

 @ Bean @ Resource(名称=" jdbc/DefaultDB")

 公共数据源dataSource()抛出GeneralException {
   尝试{
        最终的JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();  dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource(" java:comp/env/jdbc/DefaultDB");
        返回dataSource;
       } catch(Exception e){
               String errorDetails ="加载数据源时出错(dev,qa,prod配置文件)-" + SpringConfiguration.class.getName();
                logger.error(errorDetails,e);
                 抛出新的GeneralException(errorDetails,e);
  }} 

src/webapp/WEB-INF/web.xml:

 <?xml version =" 1.0" encoding =" UTF-8"?>

 

  <资源参考>
      jdbc/DefaultDB 
      javax.sql.DataSource 
  

  

src/main/resources/META_INF/context.xml:

 <?xml version =" 1.0" encoding =" UTF-8"?>

 

 

 

  

当我尝试在SCP上运行它时,我不断收到此错误:

 org.springframework.jdbc.datasource.lookup.DataSourceLookupFailureException:无法查找名称为'java:comp/env/jdbc/DefaultDB'的JNDI DataSource; 嵌套的异常是javax.naming.NameNotFoundException:此上下文中未绑定名称[jdbc/DefaultDB]。 找不到[jdbc]。

有人对可能发生的事情有所了解吗? 我真的用光了这里的选项。

(7.2 kB)
付费偷看设置
发送
1条回答
Tong__Ming
1楼-- · 2020-09-14 02:47

你好,维克多

您是否使用应用程序运行创建了绑定? 如果是这样,则必须重新启动应用程序,以便它可以在启动过程中选择绑定。 否则,绑定将不可用。

请使用以下参考应用程序检查代码。

我刚刚通过将pogre.xml中的postgresql驱动程序依赖项替换为以下内容来测试了上面的示例:

 
    com.sap.cloud.db.jdbc 
    ngdbc 
    2.3.48 
 
 

我还用application.properties重命名了application-neo.properties,以便它选择正确的neo配置文件。

该应用程序现在在部署,绑定到我的hana MDC并重新启动后即可正确打开。

 2018 08 31 19:30:45#+ 00#INFO#com.sap.hana.cloud.samples.springboot.NeoConfig ## anonymous#localhost-startStop-1#na#XXXXXXXXXXXtrial#root#web ## na  #啦〜啦〜啦#
 驱动程序名称:HDB
 驱动程序版本:2.3.48-9bf9583a293e9fb8015c75991bf33038ae4f6bab
 网址:jdbc:sap://xxxxxxxx.nwtrial.od.sap.biz:XXXXXX
 数据库名称:HDB
 用户名:SYSTEM
 

主页显示:

关于,
伊凡

一周热门 更多>