Skip to main content
Jump to: navigation, search

Jetty WTP Plugin/Jetty WTP Websocket Wizard

< Jetty WTP Plugin
Revision as of 15:23, 23 April 2013 by (Talk | contribs)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

Support for this feature has been dropped with Jetty 9.
If you feel this should be brought back please file a bug.

Using the Jetty Websocket Wizard

The plugin, org.eclipse.jst.server.jetty.ui.websocket, provides a wizard that you can use to create a Jetty WebSocket.

This document provides examples for the following tasks:

  • Creating an implementataion of the org.eclipse.jetty.websocket.WebSocketServlet, which uses an implementation of org.eclipse.jetty.websocket.WebSocket
  • Modifying the web.xml to declare the WebSocketServlet createdt-name + servlet-mapping). ??
  • TODO : create an HTML page that calls the WebSocketServlet.

To create a WebSocketServlet, complete the following steps.

  1. In the Eclipse menu, navigate to File->New>-Other.
  2. The Select a wizard dialog box opens.


  3. Select Web/Jetty WebSocket.
  4. The Create Jetty-WebSocket dialog box opens.



  5. In the Java package field, enter org.sample.websocket.
  6. In the Class name field, enter ChatWebSocketServlet.
  7. The Superclass field is automatically filled as org.eclipse.jetty.websocket.WebSocketServlet.
  8. Click Next.
  9. The Create Jetty-WebSocket Deployment Descriptor dialog box opens.


    This is the same dialog box that the Servlet uses.

  10. Here you can define the servlet-mappings.
  11. Click Next.
  12. The Create Jetty-WebSocket Modifiers, Interfaces and Methods dialog box opens.


  13. Here you can generate some methods. The wizard generates doPost for WebSocket using ???
  14. Click Finish.
  15. Your workspace looks like this :


    The wizard generates :

    • a class ChatWebSocketServlet :
    package org.sample.websocket;
    import java.util.Set;
    import java.util.concurrent.CopyOnWriteArraySet;
    import javax.servlet.ServletException;
    import javax.servlet.http.HttpServletRequest;
    import javax.servlet.http.HttpServletResponse;
    import org.eclipse.jetty.websocket.WebSocket;
    import org.eclipse.jetty.websocket.WebSocketServlet;
     * Jetty WebSocketServlet implementation class ChatWebSocketServlet
    public class ChatWebSocketServlet extends WebSocketServlet {
    	private static final long serialVersionUID = 1L;
         * @see WebSocketServlet#WebSocketServlet()
        public ChatWebSocketServlet() {
            // TODO Auto-generated constructor stub
    	private final Set<ChatWebSocket> members = new CopyOnWriteArraySet<ChatWebSocket>();
    	 * @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
    	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		// TODO Auto-generated method stub
    	 * @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
    	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    		getServletContext().getNamedDispatcher("default").forward(request, response);
    	 * @see org.eclipse.jetty.websocket.WebSocketServlet#doWebSocketConnect(javax.servlet.http.HttpServletRequest, java.lang.String)
    	protected WebSocket doWebSocketConnect(HttpServletRequest request, String protocol) {
    		return new ChatWebSocket();
    	class ChatWebSocket implements WebSocket {
    		private Outbound outbound;
    		public void onConnect(Outbound outbound) {
    			this.outbound = outbound;
    		 * @see org.eclipse.jetty.websocket.WebSocket#onMessage(byte, byte[],
    		 * int, int)
    		public void onMessage(byte frame, byte[] data, int offset, int length) {
    		 * @see org.eclipse.jetty.websocket.WebSocket#onMessage(byte,
    		 * java.lang.String)
    		public void onMessage(byte frame, String data) {
    			for (ChatWebSocket member : members) {
    				try {
    					member.outbound.sendMessage(frame, data);
    				} catch (IOException e) {
    					// org.eclipse.jetty.util.log.Log.warn(e);
    		 * @see org.eclipse.jetty.websocket.WebSocket#onDisconnect()
    		public void onDisconnect() {

    1.web.xml is modified like this :

    2.TODO : generate an HTML file which consume the WebSocket.

Back to the top