首页 > 解决方案 > 无法使 WebSockets 在 Payara 5.1 中工作

问题描述

我试图使旧的 Java 7 EE WebSocket 应用程序:https://www.oracle.com/webfolder/technetwork/tutorials/obe/java/HomeWebsocket/WebsocketHome.html在 Payara Server 5.184 #badassfish (build 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如果有人想尝试一下。过去,这在我使用 Glassfish 的旧 Netbeans 中有效(不记得版本)。

谢谢。

标签: jakarta-eewebsocketcdipayara

解决方案


如果我保留 Java EE 7,它可以工作。不知道升级到 Java EE 8 后会发生什么。


推荐阅读