Tomcat 7 的 HANA 云数据源问题
HANA Cloud Data Source issue with Tomcat 7
我需要在 HANA Cloud 中部署基于 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
帮我解决这个问题
谢谢
奇兰杰维门将
看到你的数据库 ID 名为 tutorial 并且你使用的是 HANA 试用实例,我假设你只需要一个数据源/模式。
在 HANA Cloud Platform documentation 中,您可以找到两种不同的如何使用 tomcat 7 (Java Web SDK) 获取数据库连接的方法:
最好的方法是查看这些教程并选择您喜欢的方式。教程提供了很多细节。
我的猜测是,问题是因为您为数据源指定了一个自定义名称(“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 中的数据源将被称为 <default>
(包括尖括号)。为此,只需删除您当前的数据源绑定并添加一个新绑定。
我需要在 HANA Cloud 中部署基于 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!|
这是数据源配置的详细信息
<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
帮我解决这个问题
谢谢 奇兰杰维门将
看到你的数据库 ID 名为 tutorial 并且你使用的是 HANA 试用实例,我假设你只需要一个数据源/模式。
在 HANA Cloud Platform documentation 中,您可以找到两种不同的如何使用 tomcat 7 (Java Web SDK) 获取数据库连接的方法:
最好的方法是查看这些教程并选择您喜欢的方式。教程提供了很多细节。
我的猜测是,问题是因为您为数据源指定了一个自定义名称(“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 中的数据源将被称为 <default>
(包括尖括号)。为此,只需删除您当前的数据源绑定并添加一个新绑定。