MULE(AnyPoint Studio)中的Oracle数据源配置

Posted

技术标签:

【中文标题】MULE(AnyPoint Studio)中的Oracle数据源配置【英文标题】:Oracle Data source configuration in MULE(AnyPoint Studio) 【发布时间】:2015-08-21 21:03:42 【问题描述】:

我在 Mule 中将此配置用于 oracle 数据库:

    <spring:beans>               
    <spring:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource" destroy-method="shutdown" name="Bean">
        <spring:property name="driverName" value="oracle.jdbc.driver.OracleDriver"/>
        <spring:property name="url" value="jdbc:oracle:thin:@192.168.28.129:1521:orcl"/>
        <spring:property name="user" value="username" />
        <spring:property name="password" value="123456" />
    </spring:bean>
</spring:beans>


<db:oracle-config name="Oracle_Configuration" useXaTransactions="true" dataSource-ref="dataSource"   doc:name="Oracle Configuration">

    <db:pooling-profile maxPoolSize="10" minPoolSize="5" acquireIncrement="2"/>
</db:oracle-config>

*我将 ojdbc14.jar 作为外部 jar 文件添加到我的项目中 但是当我在 Anypoint Studio 的 Global Elements 中测试连接时,我看到了这个错误:

我该如何解决这个问题?

另外我不得不说,在一个主方法中我检查了连接,没问题,这是主方法结构:

    import java.sql.*;

public class Main 

    public static void main(String[] args) throws Exception 

           try 
                 Class.forName ("oracle.jdbc.driver.OracleDriver");
            catch (ClassNotFoundException e) 
                 e.printStackTrace();
           

            Connection conn = DriverManager.getConnection
                ("jdbc:oracle:thin:@192.168.28.129:1521:orcl", "eslami", "123456");
                                // @machineName:port:SID,   userid,  password

            Statement stmt = conn.createStatement();
            ResultSet rset = stmt.executeQuery("select * from person");
            while (rset.next())
                System.out.println (rset.getString(1) +  "  " + rset.getString(2) + "  " +  
                                    rset.getString(3) +  "  " + rset.getString(4) + "  " + 
                                    rset.getString(5));   // Print row 1
            stmt.close();
      


【问题讨论】:

请在此处查看 oracle 配置:- ***.com/questions/10398962/… @AnirbanSenChowdhary,感谢您的回复,您是否可以帮助我更多?该链接让我感到困惑?我该怎么办? 【参考方案1】:

与您的工作 Java 示例和不工作的 mule 代码的一个明显区别是 XATransactions。你能试着把它们关掉看看有什么不同吗?

否则,请提供您的 Anypoint 和 Mule 版本,我将对此代码进行测试。

【讨论】:

首先感谢您的回复,我尝试了您的解决方案并将 useXaTransactions="false" 但在测试连接后我无法成功。我再次看到错误框。我使用这个版本的 AnyPoint Studio:Anypoint Studio - Tooling for Mule ESB Anypoint Studio 2015 年 1 月发布版本:5.0.0【参考方案2】:

这就是你可以配置你的 oracle 的方式:-

<spring:beans> 
<spring:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"    destroy-method="close"> 
        <spring:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
        <spring:property name="url" value="jdbc:oracle:thin:@192.168.28.129:1521:xe"/> 
        <spring:property name="username" value="yourUserName"/> 
        <spring:property name="password" value="yourPassword"/> 
        <spring:property name="removeAbandoned" value="true"/> 
        <spring:property name="initialSize" value="10"/> 
        <spring:property name="maxActive" value="50"/> 
        </spring:bean> 
</spring:beans>

<db:generic-config name="Database_Configuration" dataSource-ref="dataSource" doc:name="Generic Database Configuration" />

 <flow name="mainFlow">
     <http:listener config-ref="httpListenerConfig" path="/*" doc:name="HTTP" allowedMethods="GET"/> 
///////////////////////////////////////

Your Code
////////////////////////////////////
 <db:select config-ref="Database_Configuration" doc:name="Database">
    <db:parameterized-query><![CDATA[select * from yourtableName]]></db:parameterized-query>
</db:select>
</flow>

您可以使用上面的配置并根据您的 ip、用户名、密码等进行更改

别忘了在你的类路径中添加commons-dbcp-1.2.2.jar 或其他版本和ojdbc6.jar

【讨论】:

感谢您的回复,在您的指导下,我可以将 Mule 连接到 oracle 你让我开心。

以上是关于MULE(AnyPoint Studio)中的Oracle数据源配置的主要内容,如果未能解决你的问题,请参考以下文章

如何使用FTP连接器在Anypoint Studio中使用mule上传和下载文件?

Mule Anypoint Studio - 测试连接失败 - 进行连接测试时出现未知错误 - 自定义 API

如何在 Anypoint Studio 项目中更改 RAML 版本

如何在 Anypoint Studio 和 Design Center 之间进行 RAML 同步

Mule Anypoint 在消息上设置入站属性

无法将自定义 Mule 连接器部署到 Anypoint Exchange