程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Tomcat 8和Websocket大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决tomcat 8和Websocket?

开发过程中遇到tomcat 8和Websocket的问题如何解决?下面主要结合日常开发的经验,给出你关于tomcat 8和Websocket的解决方法建议,希望对你解决tomcat 8和Websocket有所启发或帮助;

Appleman1234指向一个非常有用的错误报告。请参阅Iyad Elian评论:

<dependency>
    <groupID>javax.websocket</groupID>
    <artifactID>javax.websocket-API</artifactID>
    <version>1.0</version>
    <scope>provIDed</scope>
</dependency>

这就是为什么它不是在tomcat上而是在码头上工作的原因。我刚刚添加了

<scope>provIDed</scope>

现在工作正常。感谢Appleman1234!

解决方法

我在将应用程序添加到tomcat 8时遇到了麻烦。我正在使用websocket和spring
4,但是我不想使用spring内部的STOMP机制,所以我决定按照本教程并以我的方式实现我的websocket例程。我已经开发了两个星期,并且一直使用jetty(maven
jetty插件)对其进行测试,并且一切正常。但是现在我想将我的应用程序部署到在Java 8和CentOS上运行tomcat
8.0.15的生产服务器上,但是它不起作用。

这是源代码:

@WebListener
public class MyApplication implements ServletContextListener {

private final static String SERVER_CONTAINER_ATTRIBUTE = "javax.websocket.server.ServerContainer";

@Override
public void contexTinitialized(ServletContextEvent scE) {

    ServletContext container = sce.getServletContext();

    final ServerContainer serverContainer = (ServerContainer) container.getAttribute(SERVER_CONTAINER_ATTRIBUTE);
    try {
        serverContainer.addEndpoint(new MyEndpointConfig(MyEndpoint.class,"/wstest"));
    } catch (Deploymentexception E) {
        e.printStackTrace();
    }
}
}

这是错误:

java.lang.ClassCastException: org.apache.tomcat.websocket.server.WsServerContainer cAnnot be cast to javax.websocket.server.ServerContainer
at my.package.contexTinitialized(MyApplication.java:23)

第23行是我将其强制转换为ServerContainer的位置。我猜“
container.getAttribute(SERVER_CONTAINER_ATTRIBUTE)”返回null,因此强制转换失败,但是为什么?

使用jetty 9.2.3都可以正常工作。我还对它进行了测试,并安装了本地tomcat 8(最新的8.0.18)和Windows 7上的最新JDK
8,并且具有相同的性能。

您有任何解决方法的想法吗?

非常非常感谢你!

大佬总结

以上是大佬教程为你收集整理的Tomcat 8和Websocket全部内容,希望文章能够帮你解决Tomcat 8和Websocket所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:8和Websocket