I'm learning sockets in java Tomcat. I have running tutorial example like:
@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");
}
}
and a proper html file connecting to this socket via javascript. My problem is in web.xml, which I understood not to have influence for socket handling. However having 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>
My socket stops working. When I delete servlet-mapping flags:
<?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>
it works back again. I would like to have it both - like I would like to server html files via this server and handle sockets in parallel. What am I doing wrong?
Tomcat version 8.0.33 jre 1.9.0_91 I'm running it under eclipse Luna (if it changes anything).