MULE(AnyPoint Studio)中的Oracle数据源配置
Oracle Data source configuration in MULE(AnyPoint Studio)
我在 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 的全局元素中测试连接时,我看到了这个错误:
我该如何解决这个问题?
另外我要说的是,在一个main方法中我检查了连接,没问题,这是Main方法结构:
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();
}
}
与您的工作 Java 示例和非工作 mule 代码的一个明显区别是 XATransactions。你能试试把它们关掉看看有什么不同吗?
否则,请提供您的 Anypoint 和 Mule 版本,我将对此代码进行测试。
这是配置 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 数据库使用此配置:
<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 的全局元素中测试连接时,我看到了这个错误:
我该如何解决这个问题?
另外我要说的是,在一个main方法中我检查了连接,没问题,这是Main方法结构:
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();
}
}
与您的工作 Java 示例和非工作 mule 代码的一个明显区别是 XATransactions。你能试试把它们关掉看看有什么不同吗?
否则,请提供您的 Anypoint 和 Mule 版本,我将对此代码进行测试。
这是配置 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