Hi, I have a embedded jetty (9 last version) app server on a jar, this jar starts and initialise a server for http and https and deploys a war file. The war file has JAX RS jersey web services that are developed by annotations and are initialised by a servlet on web.xml like this: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>ServletAdaptor</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ServletAdaptor</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ------------------------------------------------------------------------------------------------------------------------------------------------------------ When I start the server everything is working ok and I can see on the log the WebService "endpoints" up. Now I would like to do the same with web sockets, so I added now as a library of my war all the web socket jars of jetty, then I created this 2 classes: One that register the endpoints. One as a test endpoint. ------------------------------------------------------------------------------------------------------------------------------------------------------------ import org.eclipse.jetty.websocket.servlet.WebSocketServlet; import org.eclipse.jetty.websocket.servlet.WebSocketServletFactory; public class JettyWebSocketServlet extends WebSocketServlet { @Override public void configure(WebSocketServletFactory factory) { factory.register(WebSocketEchoTest.class); } } ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ @WebSocket public class WebSocketEchoTest { private RemoteEndpoint remote; @OnWebSocketConnect public void onConnect(Session session) { System.out.println("WebSocket Opened"); this.remote = session.getRemote(); } @OnWebSocketMessage public void onMessage(String message) { System.out.println("Message from Client: " + message); try { remote.sendString("Hi Client"); } catch (IOException e) { e.printStackTrace(); } } @OnWebSocketClose public void onClose(int statusCode, String reason) { System.out.println("WebSocket Closed. Code:" + statusCode); } } ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ So now I would like to do as in JAX RS… so I changed the web.xml to this: <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <servlet> <servlet-name>ServletAdaptor</servlet-name> <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>ServletAdaptor</servlet-name> <url-pattern>/resources/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>servlet</servlet-name> <servlet-class>integra.websocket.JettyWebSocketServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>servlet</servlet-name> <url-pattern>/websockets/*</url-pattern> </servlet-mapping> <session-config> <session-timeout> 30 </session-timeout> </session-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> </web-app> ------------------------------------------------------------------------------------------------------------------------------------------------------------------------ I think this should be ok and initialise all registered WebSocket endpoints… but this is never executed (JettyWebSocketServlet) …. If this would work, I think I should have access to ws:// and wss:// on the same ports that the http and https server in the /websockets/ context, am I right? any help on this??? is this the correct approach?? thanks!! |
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
