Your setup looks correct. Just a point of clarification about contexts and mappings.
Your websocket URI would look like this ... ws://machine.hostname:port/webapp.context/websockets/ Where "machine.hostname" is your server's host name (or ip) The "port" is the non-SSL port you have configured your server on. The "webapp.context" is the context path where you deployed your web application and "/websockets/" is the request path you have specified in your servlet-mapping -- Joakim Erdfelt <[email protected]> webtide.com <http://www.webtide.com/> - intalio.com/jetty Expert advice, services and support from from the Jetty & CometD experts eclipse.org/jetty - cometd.org On Tue, Aug 20, 2013 at 9:40 AM, Sebastian Gutierrez <[email protected]>wrote: > 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 > >
_______________________________________________ jetty-users mailing list [email protected] https://dev.eclipse.org/mailman/listinfo/jetty-users
