diff -r a0f15cb8c730 -r 2d0750864a98 chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java --- a/chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java Fri Apr 22 05:56:47 2016 +0200 +++ b/chat/server/src/main/java/org/apidesign/demo/chat/server/Main.java Fri Apr 22 08:53:13 2016 +0200 @@ -23,28 +23,29 @@ */ package org.apidesign.demo.chat.server; -import java.io.IOException; import java.net.Inet4Address; import java.net.InterfaceAddress; import java.net.NetworkInterface; import java.net.URI; import java.util.Enumeration; -import javax.ws.rs.container.ContainerRequestContext; -import javax.ws.rs.container.ContainerResponseContext; -import javax.ws.rs.container.ContainerResponseFilter; +import org.glassfish.grizzly.PortRange; import org.glassfish.grizzly.http.server.HttpServer; -import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory; -import org.glassfish.jersey.server.ResourceConfig; +import org.glassfish.grizzly.http.server.NetworkListener; +import org.glassfish.grizzly.websockets.WebSocketAddOn; +import org.glassfish.grizzly.websockets.WebSocketEngine; /** Starts REST server based on Jersey. */ -final class Main implements ContainerResponseFilter { +final class Main { public static void main(String... args) throws Exception { - ResourceConfig rc = new ResourceConfig( - ChatServerResource.class, Main.class - ); + HttpServer server = HttpServer.createSimpleServer(null, new PortRange(8080, 8080)); + final WebSocketAddOn addon = new WebSocketAddOn(); + for (NetworkListener listener : server.getListeners()) { + listener.registerAddOn(addon); + } + WebSocketEngine.getEngine().register("", "/chat", new ChatServerResource()); + server.start(); URI u = new URI("http://0.0.0.0:8080/"); - HttpServer server = GrizzlyHttpServerFactory.createHttpServer(u, rc); System.err.println("Server running on following IP addresses:"); dumpIPs(); System.err.println("Press Enter to shutdown the server"); @@ -52,17 +53,6 @@ server.stop(); } - @Override - public void filter( - ContainerRequestContext requestContext, - ContainerResponseContext r - ) throws IOException { - r.getHeaders().add("Access-Control-Allow-Origin", "*"); - r.getHeaders().add("Access-Control-Allow-Credentials", "true"); - r.getHeaders().add("Access-Control-Allow-Headers", "Content-Type"); - r.getHeaders().add("Access-Control-Allow-Methods", "GET, POST, DELETE, PUT"); - } - private static void dumpIPs() throws Exception { Enumeration en = NetworkInterface.getNetworkInterfaces(); while (en.hasMoreElements()) {