在自动配置时自定义 Bluemix 的 jndiName

Customizing Bluemix's jndiName when it is automatically configured

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 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 上的设置

您不一定需要知道 JNDI 名称才能在应用程序中使用资源。 Liberty buildpack 正在执行自动配置,但还有一项 Liberty 功能 cloudAutowiring-1.0 如果只有一个相应的服务实例绑定到应用程序,它将帮助您查找资源。

查看这两个示例应用程序: