0

各位早上好,

我有一个大问题要在 Mule ESB 中运行。我正在尝试将 CSV 文件映射到 oracle 数据库的表中。为此,我创建了一个带有 Oracle 数据源的 JDBC 连接器,并且连接测试有效。但是,如果我运行 The Job,则会出现错误消息。

[Error Message]

-------------------------------------

ERROR 2015-06-17 09:01:26,223 [[....].connector.file.mule.default.receiver.01] org.mule.exception.DefaultMessagingExceptionStrategy: 
******************************************************************************
Message               : com.mulesoft.mule.module.datamapper.api.exception.DataMapperCreationException: Element [JDBC0:]-Can't initialize connection DBConnection driver[null]:jndi[null]:url[jdbc:oracle:thin:@.....:....:.......]:user[......]. (java.lang.RuntimeException). Message payload is of type: ReceiverFileInputStream
Code                  : MULE_ERROR--2
--------------------------------------------------------------------------------
Exception stack is:
1. Cannot load class 'oracle.jdbc.OracleDriver' (java.lang.ClassNotFoundException)
  org.mule.module.launcher.application.CompositeApplicationClassLoader:74 (null)
2. Cannot create JDBC driver 'Oracle'. Cannot find class. (org.jetel.exception.ComponentNotReadyException)
  org.jetel.connection.jdbc.driver.JdbcDriverImpl:188 (null)
3. Can't initialize connection DBConnection driver[null]:jndi[null]:url[..............]:user[.......]. (org.jetel.exception.ComponentNotReadyException)
  org.jetel.graph.TransformationGraph:413 (null)
4. Element [JDBC0:]-Can't initialize connection DBConnection driver[null]:jndi[null]:url[..............]:user[...........]. (com.mulesoft.mule.module.datamapper.api.exception.DataMapperCreationException)
  com.mulesoft.mule.module.datamapper.clover.impl.graphfactory.DocumentCloverGraphFactoryImpl:59 (null)
5. com.mulesoft.mule.module.datamapper.api.exception.DataMapperCreationException: Element [JDBC0:]-Can't initialize connection DBConnection driver[null]:jndi[null]:url[............]:user[.....]. (java.lang.RuntimeException)
  com.mulesoft.mule.module.datamapper.clover.impl.graphprovider.PoolGraphProvider:109 (null)
6. com.mulesoft.mule.module.datamapper.api.exception.DataMapperCreationException: Element [JDBC0:]-Can't initialize connection DBConnection driver[null]:jndi[null]:url[..............]:user[..............]. (java.lang.RuntimeException). Message payload is of type: ReceiverFileInputStream (org.mule.api.MessagingException)
--------------------------------------------------------------------------------
Root Exception stack trace:
java.lang.ClassNotFoundException: Cannot load class 'oracle.jdbc.OracleDriver'
    at org.mule.module.launcher.application.CompositeApplicationClassLoader.loadClass(CompositeApplicationClassLoader.java:74)
    at org.jetel.util.classloader.GreedyURLClassLoader.loadClassGreedy(GreedyURLClassLoader.java:137)
    at org.jetel.util.classloader.GreedyURLClassLoader.loadClass(GreedyURLClassLoader.java:111)
    + 3 more (set debug level logging or '-Dmule.verbose.exceptions=true' for everything)
******************************************************************************

我是否必须将驱动程序“ojdbc7.jar”放在特定目录中?

4

1 回答 1

0

看起来你已经配置oracle.jdbc.OracleDriver而不是oracle.jdbc.driver.OracleDriver 你可以配置以下示例:-

<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 作为依赖项

于 2015-06-17T08:53:46.080 回答