【问题标题】:How to configure Data Source in Data Service on WSO2 Micro Integrator?如何在 WSO2 Micro Integrator 的数据服务中配置数据源?
【发布时间】:2019-09-05 09:27:39
【问题描述】:

我在 WSO2 Micro Integrator 上工作的 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 数据源?

【问题讨论】:

  • 您使用的是哪个版本?因为在 WSO2 集成器中最新版本的 DSS 中,您可以直接从控制台本身添加数据源。有关更多详细信息,请查看此文档 docs.wso2.com/display/EI650/…
  • 版本:6.5.0。谢谢,但我正在研究 Micro Integrator (nn docker) 而不是 Enterprise Integrator。我没有用户界面。

标签: wso2 wso2dss wso2ei wso2mi


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    在 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-11-24
      • 1970-01-01
      • 1970-01-01
      • 2022-10-26
      • 2022-11-14
      • 2022-11-03
      • 1970-01-01
      相关资源
      最近更新 更多