He desarrollado un servlet HTTP que implementa MessageListener y se conecta a una JMS basado en MQ sistema utilizando javax.jms.ConnectionFactoy.
La conexión de la fábrica se inyecta al servlet a través de un Recurso de anotación.
@Resource(name = "jms/ConnectionFactory")
private ConnectionFactory connectionFactory;
El recurso se define en el context.xml archivo de configuración.
Lo que he experimentado es que al compilar el servlet en Java 11, el javax.la anotación.Ressource es simplemente ignorado, mientras que todavía puedo buscar el recurso en base a su nombre en el contexto directamente. Pero, cuando me compilar usando Java 8, el recurso se inyecta a la anotada campo en el servlet.
Alguien puede explicar esto?
Otro punto es que la javax espacio de nombres se sustituye por el jakarate uno, al migrar de Java EE en Jakarta, EE. La mayoría de los JMS biblioteca todavía están implementadas usando el javax.jms.* interfaces, como ConnectionFactory, Cola, etc.
¿Alguien tiene experiencia de cómo la compatibilidad se parece o es una reimplementación de JMS libs necesario?