나는 Spring 설명서를 읽고 Spring JMS Listener를 설정했습니다. 그러나 대기열에 메시지를 추가하더라도 코드가이를 감지하지 못합니다. 다음과 같이 내 스프링 설정은 다음과 같이JMS Spring/jms를 사용하여 Oracle 큐에서 메시지를 사용할 수 없습니다.
<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"/>
내 자바는 다음과 같습니다
내 사용자 정의 리스너 :
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;
}
}
[편집을하십시오 위의 설정은 정상적으로 작동 중입니다]
안녕하세요. 회신 해 주셔서 감사합니다. 내 설정을 변경했고 위의 설정이 현재 작동 중입니다. 그래도 Grails 애플리케이션으로이 포트를 포팅하려했으나 대기열의 메시지를 소비하지 않습니다. 나는 누구도 전에 이것을 시도하고 어떤 아이디어가 있다고 가정하지 않습니까? – user1740752