web.xml与tomcat 8中的websocket

时间:2016-07-02 09:47:22

标签: java sockets tomcat web.xml

我在java Tomcat中学习套接字。我有运行教程示例,如:

@ServerEndpoint("/echo") 
public class EchoServer {
    @OnOpen
    public void onOpen(Session session){
       System.out.println(session.getId() + " has opened a connection"); 
    }

    @OnMessage
    public void onMessage(String message, Session session){
        System.out.println("Message from " + session.getId() + ": " + message);
    }

    @OnClose
    public void onClose(Session session){
        System.out.println("Session " + session.getId() + " has ended");
    }
}

和通过javascript连接到此套接字的正确html文件。我的问题是在web.xml中,我知道这对套接字处理没有影响。但是有web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 <display-name>SocketPOC</display-name>

 <servlet-mapping>
    <servlet-name>default</servlet-name>
    <url-pattern>*.html</url-pattern>
 </servlet-mapping>

</web-app>

我的套接字停止工作。当我删除servlet映射标志时:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
 <display-name>SocketPOC</display-name>

</web-app>

它再次起作用。我想同时拥有它 - 就像我想通过这个服务器服务html文件并并行处理套接字。我做错了什么?

Tomcat版本8.0.33 jre 1.9.0_91 我在eclipse Luna下运行它(如果它改变了什么)。

0 个答案:

没有答案