我尝试将 Tyrus 部署到 Tomcat 8 容器,但失败了。根据文档,我应该能够部署一个包含我的类并支持 Tyrus 类/依赖项的 WAR,并且所有用 @ServerEndpoint 注释的类都应该在 WAR 中找到并部署为 websocket 端点。这条指令让我有点困惑,因为我没有在部署描述符中定义任何类型的过滤器,但我决定我必须以某种方式依赖于 Tomcat 8 中 JSR 356 支持中的一些未知魔法。事实证明,没有如此神奇。注意:我使用 Tomcat 8 是因为我的理解是它支持 JSR 356 websocket 标准。另外,我的JDK是最新的Java 7版本。
我花了一些时间研究这个问题,发现人们通过从命令行将服务器实例 (org.glassfish.tyrus.server.Server) 作为 Java 应用程序运行,成功地使用 Tyrus 发布了 websocket 端点。我已经尝试过这个并且有效。但是,我无法在 Tomcat 上成功部署 WAR。
有谁了解在 Tomcat 8 上通过 Tyrus 成功发布 websocket 端点所需的步骤吗?
Apache Tomcat 7.0 及更高版本(以及 Eclipse Jetty 9.1)内置了对 JSR-356(又名javax.websocket
).
大多数 JEE7 容器无需使用 Tyrus 兼容层。
只需跳过整个 Tyrus 配置问题并使用公开的内置功能javax.websocket
支持。
- Jetty 9+ https://www.eclipse.org/jetty/documentation/current/websocket-java.html
- Tomcat 8 操作方法 https://tomcat.apache.org/tomcat-8.0-doc/web-socket-howto.html
-
Tomcat 7 操作方法 https://tomcat.apache.org/tomcat-7.0-doc/web-socket-howto.html
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)