Я разработал сервлет HTTP, который реализует MessageListener и подключается к системе MQ на основе JMS с помощью javax.jms.ConnectionFactoy.
Фабрика соединений вводится в сервлет с помощью аннотации ресурса.
@Resource(name = "jms/ConnectionFactory")
private ConnectionFactory connectionFactory;
Ресурс определяется в context.xml файл конфигурации.
Что я испытал, так это то, что при компиляции сервлета с использованием Java 11, аннотации javax.Ресурс просто игнорируется, в то время как я все еще могу искать ресурс на основе его имени непосредственно в контексте. Но когда я компилирую его с помощью Java 8, ресурс вводится в аннотированное поле сервлета.
Кто-нибудь может это объяснить?
Другой момент заключается в том, что пространство имен javax заменяется пространством имен jakarate при переходе с Java EE на Jakarta EE. Большая часть библиотеки JMS по-прежнему реализована с использованием интерфейсов javax.jms.*, таких как ConnectionFactory, очередь и т. Д.
Есть ли у кого-нибудь опыт в том, как выглядит совместимость, или необходима повторная реализация библиотек JMS?