2013-03-11 3 views
1

Я следил за весенней документацией и настраивал прослушиватель Spring JMS. Тем не менее, даже если я добавляю сообщение в очередь, мой код не обнаруживает этого. Моя весна конфигурации выглядит следующим образом:JMS Невозможно использовать сообщения из очереди Oracle, используя spring/jms

<bean id="dataSourceListener" class="oracle.jdbc.pool.OracleDataSource"> 
    <property name="URL" value="xxx"/> 
    <property name="user" value="xxx"/> 
    <property name="password" value="xxx"/> 
</bean> 

<bean id="jmsConnectionFactory" class="OracleAqFactoryBean"> 
    <property name="dataSource" ref="dataSourceListener" /> 
</bean> 

<jms:listener-container connection-factory="jmsConnectionFactory" acknowledge="transacted" concurrency="1-5"> 
    <jms:listener destination="queuename" ref="myMessageListener"/> 
</jms:listener-container> 

<bean id="myMessageListener" class="Listener"/> 

My Java выглядит следующим образом:

Мой заказ слушатель:

class Listener implements MessageListener { 

    @Override 
    void onMessage(Message message) { 
     // code to handle message is here 
    } 
} 

И мои OracleAqFactoryBean:

public class OracleAqFactoryBean implements FactoryBean { 
private DataSource dataSource; 

public void setDataSource(DataSource dataSource) { 
    this.dataSource = dataSource; 
} 

@Override 
public Object getObject() throws Exception { 
    return AQjmsFactory.getConnectionFactory(dataSource); 
} 

@Override 
public Class<?> getObjectType() { 
    return ConnectionFactory.class; 
} 

@Override 
public boolean isSingleton() { 
    return true; 
} 

} 

[EDIT: ВЫШЕ УСТАНОВКА СЕЙЧАС РАБОТАЕТ УСПЕШНО]

ответ

0

Я не понимаю, почему вы подключаете функцию FactoryBean к объекту Spring DMLC destination. Это явно неверно, потому что setDestinationmethod принимает только тип javax.jms.Destination. Вы подключили connectionFactory и messageListener. Это все, что необходимо для начала потребления сообщений. Если вы удалите ссылку testmq, которую вы подключили к свойству destination, сообщения должны быть успешно использованы.

+0

Привет, спасибо за ваш ответ. Я изменил свой конфиг, и приведенная выше настройка теперь работает. Я попытался перенести это в приложение Grails, хотя он не потребляет никаких сообщений из очереди. Я не думаю, что кто-то пробовал это раньше и имеет какие-то идеи? – user1740752

Смежные вопросы