如何在Mule ESB Server上为jdbc设置合适的驱动程序?

时间:2014-12-10 09:58:47

标签: jdbc mule mule-studio sqlexception

美好的一天。 我在Anypoint Studio中创建了一个Mule应用程序,在其中我向Oracle和MsSQL数据库发出了请求。 当我在本地机器上运行应用程序工作正常时,没问题。 现在我尝试在C:\ mule-standalone-3.4.0 \ app文件夹中的独立服务器上部署应用程序。应用程序已成功部署。 之后,我尝试向Web服务发出请求并收到错误:

  

java.sql.SQLException:找不到适合jdbc:sqlserver的驱动程序:   // ....

应用程序文件夹中有sqljdbc4-4.0.jar和ojdbc6-11.2.0.jar ... \ lib: 我刚看过这篇文章Mule 3.5 Community throwing No Suitable Driver found 我在配置文件中添加了下一个字符串:

<spring: beans>
     <spring: bean id = "jdbcDataSource" class = "org.enhydra.jdbc.standard.StandardDataSource" name = "jdbcDataSource">
         <spring: property name = "url" value = "jdbc: sqlserver: // MYSERV: 1433; databaseName = MYDB" />
         <spring: property name = "driverClassName" value = "com.microsoft.sqlserver.jdbc.SQLServerDriver" />
         <spring: property name = "username" value = "user_login" />
         <spring: property name = "password" value = "PASS" />
     </ spring: bean>
<spring: bean id = "jdbcDataSource" class = "org.enhydra.jdbc.standard.StandardDataSource" name = "jdbcDataSource">
         <spring: property name = "url" value = "jdbc: oracle: thin: @ // MYSERVER.is.loc: 1521 / ORACLEINST" />
         <spring: property name = "driverClassName" value = "oracle.jdbc.driver.OracleDriver" />
         <spring: property name = "username" value = "user_login" />
         <spring: property name = "password" value = "PASS" />
     </ spring: bean>
</ spring: beans>

之后,应用程序无法在服务器上部署,并出现以下错误:

  

org.springframework.beans.factory.parsing.BeanDefinitionParsingException:   配置问题:Bean名称'jdbcDataSource'已在使用中   这个元素

请帮助部署可以访问数据库的应用程序。 我需要添加到配置中还是有另一种方法允许应用程序与DB通信?

2 个答案:

答案 0 :(得分:0)

将此依赖项添加到您的pom.xml

    <dependency>
        <groupId>com.oracle.jdbc</groupId>
        <artifactId>ojdbc6</artifactId>
        <version>11.2.0.2.0</version>
    </dependency>

答案 1 :(得分:0)

我可以看到你创建了两个bean:一个用于mssql,另一个用于oracle数据库。但是你已经将两个spring bean命名为'jdbcDataSource',这会混淆spring。我建议更改名称和引用,以获取合适的名称,例如'msqlDataSource'和'oracleDataSource'。