【问题标题】:HANA Cloud Data Source issue with Tomcat 7Tomcat 7 的 HANA 云数据源问题
【发布时间】:2016-05-18 04:55:26
【问题描述】:

我需要在 HANA 云中部署基于 Spring 的 Java 应用程序,我无法获取数据源错误

2016 05 17 14:33:45#INFO#LJS_OUTPUT#Thread-11#14:33:45.128 [localhost-startStop-1] ERROR c.s.c.r.k.p.client.PersistenceDataSourceFactory - An exception occurred during rest communication with local config service: java.io.FileNotFoundException: http://localhost:20002/config/v1/services/persistence/jdbc/someothername|
2016 05 17 14:33:45#INFO#LJS_OUTPUT#Thread-11#14:33:45.129 [localhost-startStop-1] ERROR c.s.c.r.k.p.client.PersistenceDataSourceFactory - Retrieved persistence properties are null!|

这是数据源配置详细信息

和我的 web.xml 如下

<resource-ref>
    <description>DB Connection</description>
    <res-ref-name>jdbc/someothername</res-ref-name>
    <res-type>javax.sql.DataSource</res-type>
</resource-ref>

我尝试了 JNDI 查找

@Bean
  public DataSource getDataSource() {
  final JndiDataSourceLookup dsLookup = new JndiDataSourceLookup();
        dsLookup.setResourceRef(true);
        DataSource dataSource = dsLookup.getDataSource("jdbc/someothername");
        return dataSource;
  }

我直接累了

@Resource
DataSource dataSource

还有

@Resource("jdbc/someothername")
DataSource dataSource

帮我解决这个问题

谢谢 奇兰吉维 GK

【问题讨论】:

    标签: spring jndi jpa-2.1 sap-cloud-platform


    【解决方案1】:

    看到您的数据库 ID 被命名为 tutorial 并且您使用 HANA 试用实例,我假设您只需要一个数据源/架构。

    HANA Cloud Platform documentation 中,您可以找到两种不同的方法来获取与 tomcat 7 (Java Web SDK) 的数据库连接:

    1. Adding Application-Managed Persistence With JPA
    2. Adding Persistence With JDBC

    最好的方法是查看这些教程并选择您喜欢的方式。教程提供了很多细节。

    我的猜测是,问题是因为您为数据源指定了自定义名称(“someothername”)。如果您只使用一个数据源,则应始终将其称为 DefaultDB

    <resource-ref>
      <res-ref-name>jdbc/DefaultDB</res-ref-name>
      <res-type>javax.sql.DataSource</res-type>
    </resource-ref>
    

    那么您的 JDBC 查找如下所示:

    InitialContext ctx = new InitialContext();
    DataSource ds = (DataSource) ctx.lookup("java:comp/env/jdbc/DefaultDB");
    

    HANA Cloud Cockpit 中的数据源将被称为&lt;default&gt;(包括尖括号)。为此,只需删除您当前的数据源绑定并添加一个新绑定即可。

    【讨论】:

    • 是的,我使用的是跟踪版本,我必须将数据提供为“jdbc/DefaultDB”
    猜你喜欢
    • 2010-12-22
    • 2015-01-01
    • 2012-11-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-25
    • 2015-08-10
    • 1970-01-01
    相关资源
    最近更新 更多