Spring ActiveMQ Issue - PullRequest
       22

Spring ActiveMQ Issue

0 голосов
/ 13 февраля 2012

Немного Срочно, пожалуйста, помогите!

Почему я получаю IllegalArgumentException Не могу преобразовать значение типа String в требуемый тип Product, Spring?

Я читал этот вопросуже, когда я получаю похожее исключение:

<Feb 13, 2012 11:55:39 AM IST> <Warning> <HTTP> <BEA-101162> <User defined listener org.springframework.web.context.ContextLoaderListener failed: org.springframework.beans.factory.BeanCreationExceptio
n: Error creating bean with name 'jmsTemplate' defined in class path resource [manager-security-audit.xml]: Initialization of bean failed; nested exception is org.springframework.beans.TypeMismatchExc
eption: Failed to convert property value of type [java.lang.String] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory'; nested exception is java.lang.IllegalArgumentExcept
ion: Cannot convert value of type [java.lang.String] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory': no matching editors or conversion strategy found.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'jmsTemplate' defined in class path resource [manager-security-audit.xml]: Initialization of bean failed; nested
exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of type [java.lang.String] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory
'; nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to required type [javax.jms.ConnectionFactory] for property 'connectionFactory': no matching
editors or conversion strategy found
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:480)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run(AbstractAutowireCapableBeanFactory.java:409)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:380)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
        Truncated. see log file for complete stacktrace

Я также видел ответ на этот вопрос, и теперь проблема в моем случае: как мне узнать, есть ли у меня похожая проблема определенияпараметр (лично я не думаю, что это проблема здесь (просто интуиция))?ИЛИ Это какая-то другая проблема?

Пожалуйста, помогите

Вот XML-файл:

<?xml version="1.0" encoding="UTF-8"?>

  <beans
    xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:lang="http://www.springframework.org/schema/lang"
xsi:schemaLocation="http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/lang

http://www.springframework.org/schema/lang/spring-lang-2.0.xsd">
<bean id="auditListener" class="com.unica.manager.audit.AuditListener"/>
<bean id="auditEventDestination" class="org.apache.activemq.command.ActiveMQQueue">
    <constructor-arg value="audit.event.queue"/>
</bean>
<bean id="auditEventMessageConverter" class="com.unica.manager.audit.AuditEventMessageConverter"/>

<bean id="purePojoMdp" class="org.springframework.jms.listener.adapter.MessageListenerAdapter">
    <property name="delegate" ref="AuditEventManager"/>
    <property name="defaultListenerMethod" value="addAuditEvent"/>
    <property name="messageConverter" ref="auditEventMessageConverter"/>
</bean>
<bean name="auditListenerContainer"  class="org.springframework.jms.listener.SimpleMessageListenerContainer" lazy-init="true">
    <property name="autoStartup" value="false"/>
    <property name="connectionFactory" value=""/>
    <property name="destination" ref="auditEventDestination"/>
    <property name="messageListener" ref="purePojoMdp"/>
</bean>
<bean id="jmsTemplate" class="org.springframework.jms.core.JmsTemplate" depends-on="ConfigurationManager" >
    <property name="connectionFactory" value=""/>
    <property name="messageConverter" ref="auditEventMessageConverter"/>
</bean>
<bean id="audit" class="com.unica.manager.audit.Audit" >
    <property name="jmsTemplate" ref="jmsTemplate"/>
        <property name="enableQueuing" value="true"/>
        <property name="auditEventManager" ref="AuditEventManager"/>
    <property name="destination" ref="auditEventDestination"/>
</bean>

Ответы [ 2 ]

3 голосов
/ 13 февраля 2012

Почему вы ничего не вводите в свойство connectionFactory:

<property name="connectionFactory" value=""/>

Это должно быть изменено на:

<property name="connectionFactory" ref="amqConnectionFactory"/>

connectionFactory свойство имеет тип javax.jms.ConnectionFactory (см .: JmsAccessor.setConnectionFactory()).

amqConnectionFactory фабрика может быть определена следующим образом:

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:amq="http://activemq.apache.org/schema/core"
   xsi:schemaLocation="
        http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd
        http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd">

    <amq:connectionFactory id="amqConnectionFactory" brokerURL="vm://localhost" />

</beans>
1 голос
/ 13 февраля 2012

Пожалуйста, опубликуйте детали конфигурации Spring (файл xml).Сейчас из журналов видно только то, что вы пытаетесь внедрить свойство connectionFactory в виде строки.Убедитесь, что вы определили bean-компонент с идентификатором connectionFactory, который должен иметь тип javax.jms.ConnectionFactory, а затем используйте его для внедрения.

Пожалуйста, опубликуйте конфигурацию xml.Это поможет в дальнейшем устранении проблемы.

РЕДАКТИРОВАТЬ :

Исходя из вашего ввода,

Я не вижу бин, определенный как <property name="connectionFactory" ... в любом месте.Вы также упоминаете, что он работает в другой среде.Пожалуйста, проверьте, какой XML-файл содержит определение этого bean-компонента, и убедитесь, что он загружен весной вместе с опубликованным вами XML-файлом.

...