如何在 WSO2 Micro Integrator 的数据服务中配置数据源?

How to configure Data Source in Data Service on WSO2 Micro Integrator?

我让 WSO2 数据服务在 WSO2 微型集成器上工作 - 在数据服务配置文件中配置了数据服务。现在我想对数据源进行外部配置以更改工作环境(DEV/TST/UAT/PROD)。我怎样才能做到这一点?

WSO2 版本:6.5.0

我已将配置 RDBMS 更改为 Carbon 数据源,并且已尝试在以下位置配置数据源:

但在每种情况下我都有:

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

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

您可能会发现 public git 问题 here。他们将在未来的版本中提供对此功能的支持。

在 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