Spring 4 ve ActiveMQ kullanarak XML olmayan bir JMS dinleyicisini uygulamaya çalışın.Spring 4.2 ek açıklamaları ve ActiveMQ kullanılarak @JmsListener kimlik doğrulaması ve ActiveMQ
Setup of JMS message listener invoker failed for destination 'topic.FromJndiProperties' [...]
Cause: The JMS connection has failed: Force close due to SecurityException on connect.
Cause: User name [null] or password is invalid.
Yani hedefe bağlantı kullanıcı adı ve şifre Boş ile yapılıyor: Sorunum müvekkilimle aşağıdaki hatayı almaya devam olmasıdır. DestinationResolver'ı doğru şekilde ayarlamamış olabilirim ama bunu nasıl çözeceğimi düşünerek takılıyorum. Bunu düzeltmeme yardım eden var mı?
Benim AppConfig:
@Autowired
private Environment env;
@Autowired
private BeanFactory springContextBeanFactory;
@Bean
public DefaultJmsListenerContainerFactory myListenerContainerFactory() throws NamingException {
Properties props = new Properties();
props.setProperty(Context.INITIAL_CONTEXT_FACTORY, env.getProperty("java.naming.factory.initial"));
props.setProperty(Context.PROVIDER_URL, env.getProperty("java.naming.provider.url"));
props.setProperty(Context.SECURITY_PRINCIPAL, env.getProperty("java.naming.security.principal"));
props.setProperty(Context.SECURITY_CREDENTIALS, env.getProperty("java.naming.security.credentials"));
Context jndiContext = new InitialContext(props);;
ConnectionFactory connectionFactory = (ConnectionFactory) jndiContext.lookup("ConnectionFactory");
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory(connectionFactory);
factory.setDestinationResolver(new BeanFactoryDestinationResolver(springContextBeanFactory));
factory.setPubSubDomain(true);
factory.setSessionAcknowledgeMode(Session.AUTO_ACKNOWLEDGE);
return factory;
}
dinleyici: Eğer komisyoncu ucunda herhangi bir özelliği değiştirmediyseniz
@JmsListener(containerFactory = "myListenerContainerFactory", destination = "topic.FromJndiProperties")
public void receiveMessage(String message) {
try {
System.out.println("Received <" + message + ">");
} catch (Exception e) {
e.printStackTrace();
}
}
Merhaba Sundar. Tavsiye için teşekkürler. Bu değerler zaten ayarlanmış durumda. Hedef/oturumun nasıl yaratıldığına dair garip bir şey olduğunu düşünüyorum. – Dan