我有 WSO2 数据服务在 WSO2 微集成器上工作 - 在数据服务配置文件中配置的数据服务。现在我想对数据源进行外部配置以更改工作环境(DEV/TST/UAT/PROD)。我怎样才能做到这一点?
版本 WSO2:6.5.0
我已将配置 RDBMS 更改为 Carbon 数据源,并尝试在以下位置配置数据源:
- /conf/datasources.properties
- /conf/datasources/master-datasources.xml
- /conf/datasources/myconf-datasources.xml
但在每种情况下,我都有:
DS Fault Message: Error in creating Carbon data source: null
DS Code: UNKNOWN_ERROR
Source Data Service:-
java.lang.NullPointerException
at org.wso2.carbon.dataservices.core.description.config.ConfigFactory.getCarbonDataSourceConfig(ConfigFactory.java:184)
在数据服务配置文件中:
<config id="ONEDB">
<property name="carbon_datasource_name">ONEDS</property>
</config>
和 datasources.properties 的示例:
synapse.datasources=ONEDS
synapse.datasources.icFactory=com.sun.jndi.rmi.registry.RegistryContextFactory
synapse.datasources.providerPort=2199
synapse.datasources.ONEDS.registry=JNDI
synapse.datasources.ONEDS.type=BasicDataSource
synapse.datasources.ONEDS.driverClassName=oracle.jdbc.driver.OracleDriver
synapse.datasources.ONEDS.url=jdbc:oracle:thin:@olddb1.myhost.pl:2033:ONEDEV
synapse.datasources.ONEDS.username=cust_user
synapse.datasources.ONEDS.password=cust_pass
synapse.datasources.ONEDS.dsName=ONEDS
synapse.datasources.ONEDS.maxActive=100
synapse.datasources.ONEDS.maxIdle=20
synapse.datasources.ONEDS.maxWait=10000
如果我改变,我也有同样的情况:
synapse.datasources.ONEDS.registry=Memory
数据服务配置文件中定义的 DS 工作正常(但它是硬编码配置):
<config id="ONEDB">
<property name="org.wso2.ws.dataservice.user">cust_user</property>
<property name="org.wso2.ws.dataservice.password">cust_pass</property>
<property name="org.wso2.ws.dataservice.protocol">jdbc:oracle:thin:@olddb1.myhost.pl:2033:ONEDEV</property>
<property name="org.wso2.ws.dataservice.driver">oracle.jdbc.driver.OracleDriver</property>
</config>
我希望将配置数据源与定义数据服务分开。
也许有一些方法可以参数化 RDBMS 数据源?