0

我有 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 数据源?

4

2 回答 2

1

目前在 WSO2 MI (v1.0.0) 中,数据源只有在您如上所述在数据服务本身中内联定义它们时才能工作,因为碳数据源功能尚未随此版本一起提供。

你可以在这里找到公共 git 问题。他们将在未来的版本中提供对此功能的支持。

于 2019-09-06T05:40:22.310 回答
0

在 WSO MI 1.1.0 数据源工作正常。

  1. 数据源定义在 /repository/resources/conf/default.json - 添加:
    "datasource": [
        {
          "id": "ONEDS",
          "url": "jdbc:oracle:thin:@oracle.db.host.name:1234:DBNAME",
          "username": "USER",
          "password": "PASSWORD",
          "driver": "oracle.jdbc.driver.OracleDriver"
        }
      ]
  1. 在启动 WSO2 时,配置生成到 /conf/master-datasources.xml
于 2019-11-29T14:04:20.793 回答