В настоящее время я использовал клиента websocket с использованием клиента tyrus, и клиент веб-сайтов корректно работает за пределами среды OSGI.Клиент Websocket в OSGI
Проблема в том, что websocket не работает на apache karaf. Я установил все зависимости для списка WebSocket client.The является
ID | State | Lvl | Version | Name
------------------------------------------------------------------------------------
52 | Active | 80 | 4.3.0 | Apache Felix Dependency Manager
96 | Active | 80 | 1.0 | WebSocket server API
97 | Active | 80 | 1.1.0 | Tyrus Server
98 | Active | 80 | 1.1.0 | Tyrus Core
99 | Active | 80 | 1.1.0 | Tyrus Container SPI
100 | Active | 80 | 1.1.0 | Tyrus WebSocket Core
102 | Active | 80 | 1.1.0 | Tyrus Grizzly Container
103 | Active | 80 | 2.3.3 | grizzly-framework
104 | Active | 80 | 2.3.3 | grizzly-http
105 | Active | 80 | 2.3.3 | grizzly-http-server
106 | Active | 80 | 2.3.3 | grizzly-rcm
118 | Active | 80 | 1.0.8 | Apache Aries SPI Fly Dynamic Weaving Bundle
134 | Active | 80 | 1.1.0 | Tyrus Client
135 | Installed | 80 | 1.0.0.SNAPSHOT | rna-websocket-client
Клиент Тир обеспечивает реализацию через ServiceLoader. Так что я использую Apache Aries SPI Fly Dynamic Weaving Bundle, чтобы получить реализацию. Но я все еще получаю Не удалось найти класс реализации. ошибка.
При исследовании я обнаружил, что клиент Тир оленья кожа добавить
Provide-Capability: osgi.serviceloader; osgi.serviceloader="javax.websocket.ContainerProvider"
к манифесту, который обязан информировать сверток обработки об услуге предоставляется. В моем RNA-WebSocket-клиенте расслоении я добавил
<Require-Capability>osgi.serviceloader; filter:="(osgi.serviceloader=javax.websocket.ContainerProvider)";cardinality:=multiple,osgi.extender; filter:="(osgi.extender=osgi.serviceloader.processor)"</Require-Capability>.
Это может потребоваться для информирования Овна динамического ткацкого свертка, который мы потребляем услуги javax.websocket.ContainerProvider.
Является ли это правильным способом работы веб-сайтов в OSGI или существует ли какой-либо другой подход для работы websockets в OSGI? Любое понимание этой проблемы было бы действительно полезно.
Клиент WebSocket работал с примером клиента, упомянутых в ссылка с незначительными изменениями. Благодарю. – Shridhar