【问题标题】:One of '{"http://www.mulesoft.org/schema/mule/jdbc":abstract-query}' is expected'{"http://www.mulesoft.org/schema/mule/jdbc":abstract-query}' 之一是预期的
【发布时间】:2013-11-14 10:36:26
【问题描述】:

我正在尝试在 Mule Studio 中使用 Oracle 数据库连接器实现 XA 事务。当我尝试在 MuleStudio 服务器上部署这个 mule 应用程序时,我遇到了异常。

例外:

“原因:org.springframework.beans.NotWritablePropertyException:bean 类 [oracle.jdbc.xa.client.OracleXADataSource] 的属性 'url' 无效:Bean 属性 'url' 不可写或具有无效的 setter 方法。 setter的参数类型和getter的返回类型是否匹配?”

Mule 配置 xml 文件:

<jdbc-ee:oracle-data-source name="Oracle_Data_Source" user="system" password="manager" url="jdbc:oracle:thin:@//localhost:1521/xe" transactionIsolation="UNSPECIFIED" doc:name="Oracle Data Source"/>
<jdbc-ee:connector name="Database" dataSource-ref="oracleJdbcBean" validateConnections="true" queryTimeout="-1" pollingFrequency="0" doc:name="Database"/>
<jbossts:transaction-manager doc:name="Transaction Manager"/>
<spring:beans>
    <spring:bean id="oracleJdbcBean" name="oracleJdbcBean" class="oracle.jdbc.xa.client.OracleXADataSource">
        <spring:property name="user" value="system"/>
        <spring:property name="password" value="manager"/>
        <spring:property name="url" value="jdbc:oracle:thin:@localhost:1521:xe"/>
    </spring:bean>
</spring:beans>
<flow name="oraclexatransactionFlow1" doc:name="oraclexatransactionFlow1">
    <http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8082" path="testTable" doc:name="HTTP"/>
    <ee:xa-transactional action="ALWAYS_BEGIN" doc:name="Transactional">
        <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="testQuery" queryTimeout="-1" connector-ref="Database" doc:name="Database">
            <xa-transaction action="ALWAYS_JOIN"/>
            <jdbc-ee:query key="testQuery" value="select * from test"/>
        </jdbc-ee:outbound-endpoint>
    </ee:xa-transactional>
</flow>

我已按照上述配置为其他应用程序使 xa 事务与 oracle 数据库一起工作,但我得到了不同的异常,如下所示:

原因:org.xml.sax.SAXParseException;行号:195;列号:55; cvc-complex-type.2.4.a:发现以元素“xa-transaction”开头的无效内容。需要 '{"http://www.mulesoft.org/schema/mule/jdbc":abstract-query}' 之一。

如果我配置有问题,请纠正我。

【问题讨论】:

  • 试试&lt;spring:property name="URL" value="jdbc:oracle:...(即URL属性的大写)
  • 运气不好,这个技巧对我不起作用。

标签: jdbc mule xa


【解决方案1】:

Url 属性应该是

<spring:property name="url" value="jdbc:oracle:thin:@//localhost:1521/XE"/>

【讨论】:

    【解决方案2】:

    “URL”的大写为我解决了第一个问题,即

    <spring:property name="URL" value="jdbc:oracle:thin:@localhost:1521:xe" />
    

    第二个问题通过在查询之前放置“xa-transaction”元素得到解决,如下所示。

    <jdbc-ee:outbound-endpoint exchange-pattern="request-response" queryKey="testQuery" queryTimeout="-1" connector-ref="Database" doc:name="Database"> 
    <xa-transaction action="NONE" /> 
    <jdbc-ee:query key="testQuery" value="select * from test" /> 
    

    【讨论】:

      猜你喜欢
      • 2012-11-07
      • 1970-01-01
      • 2019-02-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-05
      • 2016-02-19
      相关资源
      最近更新 更多