#jakarta-ee #websocket #cdi #payara
#джакарта-ee #websocket #cdi #payara
Вопрос:
Я пытался создать старое приложение Java 7 EE WebSocket из:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html работа на сервере Payara 5.184 #badassfish (сборка 89)
Однако не удается создать экземпляр WebSocket (@ServerEndpoint).
Severe: Exception in thread "glassfish-web-async-thread-1" Severe:
java.lang.NullPointerException at
org.apache.catalina.connector.InputBuffer$ReadHandlerImpl.processAllDataRead(InputBuffer.java:492) at
org.apache.catalina.connector.InputBuffer$ReadHandlerImpl.access$800(InputBuffer.java:385) at
org.apache.catalina.connector.InputBuffer$ReadHandlerImpl$2.run(InputBuffer.java:475) at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at
java.lang.Thread.run(Thread.java:748)
Включив режим разработки CDI, я вижу:
WARN: WELD-001703: Unable to determine the @Intercepted Bean<?> for
[UnbackedAnnotatedField] @Inject @Intercepted private
org.jboss.weld.probe.InvocationMonitor.interceptedBean WARN:
PROBE-000020: A problem occured during monitoring of bean instance
construction: null java.lang.RuntimeException: at
com.magicpigeon.websocket.DeviceWebSocketServer.<init>(DeviceWebSocketServer.java:1) at
com.magicpigeon.websocket.DeviceWebSocketServer$Proxy$_$$_WeldSubclass.<init>(Unknown Source) at
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
DeviceWebSocketServer
это мой класс @ServerEndpoint.
Есть ли какая-либо ошибка, связанная с CDI? Чего мне может не хватать?.
Код здесь:https://github.com/DanielMerchan/WebsocketHome если кто-то хочет попробовать. Это работало в прошлом в моих старых Netbeans с Glassfish (не помню версию).
Спасибо.
Комментарии:
1. Я не уверен, что эти два связаны. Первый является NPE. Последние являются предупреждениями от того, что вы называете «режимом разработки CDI», но на самом деле это инструмент для проверки сварных швов . Проблема в том, что Probe не используется по умолчанию и запускается только после запуска в режиме разработки Weld. Следовательно, это не должно вызывать первую ошибку.
2. Спасибо. Как вы упомянули, они не связаны, но я удивлен примером, который отлично работал в более ранних версиях Glassfish и WebLogic, теперь не работает в Payara и TomEE.
Ответ №1:
Это работает, если я сохраняю Java EE 7. Не знаю, что происходит при обновлении до Java EE 8.