IBM Bluexmix自动配置绑定服务(https://console.ng.bluemix.net/docs/runtimes/liberty/autoConfig.html)
这会导致在server.xml(https://console.ng.bluemix.net/docs/services/SQLDB/index.html#SQLDB)中输入dataSource。它看起来像这样:
<dataSource id='db2-mydb' jdbcDriverRef='db2-driver' jndiName='jdbc/mydb'
statementCacheSize='30' transactional='true'>
<properties.db2.jcc databaseName='${cloud.services.mydb.connection.db}'
id='db2-mydb-props'
password='${cloud.services.mydb.connection.password}'
portNumber='${cloud.services.mydb.connection.port}'
serverName='${cloud.services.mydb.connection.host}'
user='${cloud.services.mydb.connection.username}'/>
</dataSource>
jndiName是jdbs / DBServiceName。我想自定义jndiName,以便我可以在应用程序中使用它而不需要知道数据库服务名称。 同时我也希望blueMix为我创建属性,因为在推送代码之前我不知道db服务名称。
修改 澄清BlueMix上的设置
答案 0 :(得分:2)
您不一定需要知道JNDI名称才能使用应用程序中的资源。 Liberty buildpack正在进行自动配置,但是还有一个Liberty功能cloudAutowiring-1.0,如果只有一个相应的服务实例绑定到应用程序,它将帮助您查找资源。
查看以下两个示例应用: