【问题标题】:How to replace default KAHA DB with Oracle database in ActiveMQ-5.11如何在 ActiveMQ-5.11 中用 Oracle 数据库替换默认的 KAHA DB
【发布时间】:2021-05-19 00:34:34
【问题描述】:

我们开始使用带有默认 Kaha 数据库的 Apache ActiveMQ。

现在我们将非常有效地使用它来降低数据丢失的风险我们希望用 Orcale 数据库替换默认数据库。我们该怎么做我尝试更改 actvemq.xml

    <bean id="Orcale-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
      <property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>
      <property name="url" value="jdbc:oracle:thin:*.*.*.*:1521/xe"/>
      <property name="username" value="username"/>
      <property name="password" value="password"/>
      <property name="poolPreparedStatements" value="true"/>
     </bean>
Below  one is adapter configuration

     <persistenceAdapter>
          <jdbcPersistenceAdapter dataSource="Orcale-ds"/>
       </persistenceAdapter>

但是服务器没有启动所以如何使用activeMQ配置oracle数据库。 日志文件中的错误如下

    at org.apache.activemq.console.Main.main(Main.java:115)[activemq.jar:5.11.1]
2015-11-18 16:58:30,251 | ERROR | Failed to load: class path resource [activemq.xml], reason: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]: Cannot create inner bean '(inner bean)#141e366' of type [org.apache.activemq.store.jdbc.JDBCPersistenceAdapter] while setting bean property 'persistenceAdapter'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#141e366' defined in class path resource [activemq.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.String' to required type 'javax.sql.DataSource' for property 'dataSource'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found | org.apache.activemq.xbean.XBeanBrokerFactory | main
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' defined in class path resource [activemq.xml]: Cannot create inner bean '(inner bean)#141e366' of type [org.apache.activemq.store.jdbc.JDBCPersistenceAdapter] while setting bean property 'persistenceAdapter'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name '(inner bean)#141e366' defined in class path resource [activemq.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: Failed to convert property value of type 'java.lang.String' to required type 'javax.sql.DataSource' for property 'dataSource'; nested exception is java.lang.IllegalStateException: Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveInnerBean(BeanDefinitionValueResolver.java:287)[spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:129)[spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE]
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1419)[spring-beans-3.2.11.RELEASE.jar:3.2.11.RELEASE]

从一些对话开始的错误。

ERROR | Failed to load: class path resource [activemq.xml], reason: Error creating bean with name 'org.apache.activemq.xbean.XBeanBrokerService#0' 
defined in class path resource [activemq.xml]: Cannot create inner bean '(inner bean)#dca1b0' of type [org.apache.activemq.store.jdbc.JDBCPersistenceAdapter] 
while setting bean property 'persistenceAdapter'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'(inner bean)#dca1b0' defined in class path resource [activemq.xml]: Initialization of bean failed; nested exception is org.springframework.beans.ConversionNotSupportedException: 
Failed to convert property value of type 'java.lang.String' to required type 'javax.sql.DataSource' for property 'dataSource'; nested exception is java.lang.IllegalStateException: 
Cannot convert value of type [java.lang.String] to required type [javax.sql.DataSource] for property 'dataSource': no matching editors or conversion strategy found | 
org.apache.activemq.xbean.XBeanBrokerFactory | main

【问题讨论】:

  • 如果您从代理日志等报告错误,您将获得更多帮助,否则人们无事可做
  • 是的,请务必添加错误日志。还记得在 [activemq_home]/lib/optional 中添加驱动吗?
  • 是的,我在 lib 可选中添加了 jdbc7,仍然面临问题

标签: apache activemq


【解决方案1】:

你必须添加 bean(带#)而不是字符串 -

<jdbcPersistenceAdapter  dataSource="#Orcale-ds"/>

它将数据源视为字符串而不是数据源 bean

【讨论】:

    猜你喜欢
    • 2010-12-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-04
    • 1970-01-01
    • 2018-01-25
    • 2021-12-29
    • 1970-01-01
    相关资源
    最近更新 更多