Hallo, hab wieder mal Stirnschweiß. Bis heute früh habe ich noch nie etwas davon gehört "Artemis JMS Broker". Bis zu dem unten stehenden einfachen Beispiel (Spring Boot, Maven, Eclipse) bin ich gekommen (funktioniert soweit auch). Ich soll aber auch Testfälle mit verschiedenen Protokollen schreiben und die Unterschiede der einzelnen Protokolle herausarbeiten. Aber wie? Ich finde im Netz nur Spring XML Configs, hätte die Config aber gerne als Java Bean oder irgendwas anderes (z.B. in der application.properties). Nicht XML. Bitte nicht. Geht das überhaupt? Aktuell wird immer Core gefunden, was alle Protokolle unterstützt. Also die Frage ist:
Wie und an welcher Stelle, kann ich gezielt ein Protokoll Modul (ActiveMQ Artemis) konfigurieren? Das einfache Anhängen des Protkolls an die URL, funktioniert leider nicht.
Über etwas Hilfe, würde ich mich sehr freuen.
Hier das erwähnte einfache Beispiel.
[CODE lang="java" title="Controller"]@RestController
public class JmsRestController {
@Autowired
JmsProducer jmsProducer;
@PostMapping("/send")
public void sendDataToJms(@RequestParam String message) {
jmsProducer.send(message);
}
}[/CODE]
[CODE lang="java" title="application.properties" highlight="7"]spring.artemis.mode=EMBEDDED
#spring.artemis.mode = native
#spring.artemis.host = localhost
#spring.artemis.port = 9876
#spring.artemis.user = admin
#spring.artemis.password = secret
spring.activemq.broker-url = tcp://localhost:9876?protocols=MQTT //funktioniert nicht
spring.artemis.embedded.enabled=true
#spring.jms.template.default-destination=my-queue-1
logging.level.org.apache.activemq.audit.base=WARN
logging.level.org.apache.activemq.audit.message=WARN[/CODE]
Wie und an welcher Stelle, kann ich gezielt ein Protokoll Modul (ActiveMQ Artemis) konfigurieren? Das einfache Anhängen des Protkolls an die URL, funktioniert leider nicht.
Über etwas Hilfe, würde ich mich sehr freuen.
Hier das erwähnte einfache Beispiel.
[CODE lang="java" title="Controller"]@RestController
public class JmsRestController {
@Autowired
JmsProducer jmsProducer;
@PostMapping("/send")
public void sendDataToJms(@RequestParam String message) {
jmsProducer.send(message);
}
}[/CODE]
Java:
@Service
public class JmsConsumer {
Logger log = LoggerFactory.getLogger(JmsConsumer.class);
@JmsListener(destination= "simpleJmsInmemory.queue")
public void receive(String message) {
log.info("Received message='{}'", message);
}
}
Java:
@Service
public class JmsProducer {
Logger log = LoggerFactory.getLogger(JmsProducer.class);
@Autowired
private JmsTemplate jmsTemplate;
@Autowired
private Queue queue;
public void send(String message) {
jmsTemplate.convertAndSend(queue, message);
log.info("Sent message='{}'", message);
}
}
Java:
@EnableJms
@Configuration
public class JmsConfig {
@Bean
public Queue queue() {
return new ActiveMQQueue("simpleJmsInmemory.queue");
}
}
#spring.artemis.mode = native
#spring.artemis.host = localhost
#spring.artemis.port = 9876
#spring.artemis.user = admin
#spring.artemis.password = secret
spring.activemq.broker-url = tcp://localhost:9876?protocols=MQTT //funktioniert nicht
spring.artemis.embedded.enabled=true
#spring.jms.template.default-destination=my-queue-1
logging.level.org.apache.activemq.audit.base=WARN
logging.level.org.apache.activemq.audit.message=WARN[/CODE]