首页 > 解决方案 > 在 mule 中获取 oracle spring bean 配置的 NoSuchBeanDefinitionException 错误

问题描述

我添加了带有 Id-dataSource 的spring bean,并为 Oracle DB 配置添加了属性,还添加了引用该 bean 的 通用数据库配置。

 <spring:beans>
 <spring:bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"   destroy-method="close" name="Bean">
    <spring:property name="url" value="${oracleAQ.url}"/> 
    <spring:property name="username" value="${oracleAQ.userName}"/> 
    <spring:property name="password" value="${oracleAQ.password}"/> 
    <spring:property name="initialSize" value="10"/> 
    <spring:property name="maxActive" value="50"/>
        <spring:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
    </spring:bean>
  </spring:beans>



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

我为 oracle db 添加的依赖项是 ojdbc8 和 commons-dbcp

  <dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.2.2</version>
</dependency>
<dependency>
<groupId>com.oracle</groupId>
 <artifactId>ojdbc8</artifactId>
 <version>12.2.0.1</version>
</dependency>

但是,在运行这个项目时,我看到了类似的错误,

org.mule.module.launcher.DeploymentInitException:NoSuchBeanDefinitionException:没有定义名为“dataSource”的bean 在 org.mule.module.launcher.application.DefaultMuleApplication.init(DefaultMuleApplication.java:212) ~[mule-module-launcher-3.8.4.jar:3.8.4] 在 org.mule.module.launcher.artifact。 ArtifactWrapper$2.execute(ArtifactWrapper.java:63) ~[mule-module-launcher-3.8.4.jar:3.8.4] at org.mule.module.launcher.artifact.ArtifactWrapper.executeWithinArtifactClassLoader(ArtifactWrapper.java:136) ~[mule-module-launcher-3.8.4.jar:3.8.4] at org.mule.module.launcher.artifact.ArtifactWrapper.init(ArtifactWrapper.java:58) ~[mule-module-launcher-3.8.4 .jar:3.8.4] 在 org.mule.module.launcher.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:25) ~[mule-module-launcher-3.8.4.jar:3.8.4] 在 org.mule.module .launcher.DefaultArchiveDeployer.redeploy(DefaultArchiveDeployer.java:463) ~[mule-module-launcher-3.8.4.jar:3.8.4] 在 org.mule.module。launcher.DeploymentDirectoryWatcher.redeployModifiedArtifacts(DeploymentDirectoryWatcher.java:562) ~[mule-module-launcher-3.8.4.jar:3.8.4] at org.mule.module.launcher.DeploymentDirectoryWatcher.redeployModifiedApplications(DeploymentDirectoryWatcher.java:539) ~ [mule-module-launcher-3.8.4.jar:3.8.4] 在 org.mule.module.launcher.DeploymentDirectoryWatcher.run(DeploymentDirectoryWatcher.java:352) ~[mule-module-launcher-3.8.4.jar: 3.8.4] 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) ~[?:1.8.0_181] 在 java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308) ~[ ?:1.8.0_181] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180) ~[?:1.8.0_181] 在 java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask。运行(ScheduledThreadPoolExecutor.java:294)~[?:1.8.0_181] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:1.8.0_181] at java.util.concurrent.ThreadPoolExecutor$Worker .run(ThreadPoolExecutor.java:624) [?:1.8.0_181] 在 java.lang.Thread.run(Thread.java:748) [?:1.8.0_181] 原因:org.mule.api.config.ConfigurationException:创建名为“_muleNotificationManager”的bean时出错:FactoryBean在创建对象时抛出异常;嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“Generic_Database_Configuration”的 bean 时出错:设置 bean 属性“dataSource”时无法解析对 bean“dataSource”的引用;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有定义名为“dataSource”的 bean 请查找附件截图NoSuchBeanDefinitionException

我无法找到解决方案。谁能帮我解决这个问题..

标签: databaseoraclemulejavabeansmule-studio

解决方案


您可以尝试name从“Bean”更改为“dataSource”吗?我认为这两个标识符导致了这个问题。


推荐阅读