Используемый HttpService не является веб-контейнером (из Pax Web)
Я пытаюсь заставить SessionListener работать с моим JAX-RS JSON каналом. Немного прощупывая в темноте, я пытался создать экземпляр среды Pax-Whiteboard, которая должна обрабатывать слушателя, поэтому я добавил пакеты в свою среду OSGi. Теперь у меня есть следующая ошибка:
[Blueprint Extender: 3] ОШИБКА org.ops4j.pax.web.extender.whiteboard.internal.WebApplication - регистрация пропущена для [ListenerWebElement{mapping=DefaultListenerMapping{httpContextId=null,listener=org.example.MySessionListener@}} 5 535] к ошибке во время регистрации java.lang.UnsupportedOperationException: Внутренняя ошибка: В использовании HttpService не является WebContainer (из Pax Web)
Что означает эта ошибка? Означает ли это, что обработанный Pax SessionListener не может использоваться, потому что Pax создает собственный HttpService, а у меня уже есть те, которые поддерживают JAX-WS?
А конкретнее, есть ли способ, которым я могу справиться с этим?
1 ответ
Похоже, вам не хватает некоторых пакетов Pax-Web. Спецификация OSGi HttpService не предоставляет возможности для SessionListeners, это возможно только с новой спецификацией OSGi R6 Http Whiteboard. В зависимости от версии Pax-Web, которую вы используете, это возможно или не возможно. Но чтобы иметь это, особенно для версий до 6.0, вам также нужно добавить Pax-Web-War и, возможно, еще несколько пакетов в вашу среду. Взгляните на соответствующие тесты интеграции базового класса Pax-Web проекта Pax-Web-Integrationtests. Это полный список пакетов, необходимых для запуска Pax-Web, в том числе с расширениями War, поэтому вам может потребоваться удалить некоторые из них.