Tuesday 15 May 2012

java - How compose web.xml to lauch server side with maven and jetty -



java - How compose web.xml to lauch server side with maven and jetty -

what should set web.xml launch start server side. launch jetty ui works server side isn't not running

i have next folder tree:

src |-main |-java | |-com | |-example | |-test | |-serverside.java |-webapp |-index.html |-web-inf |-web.xml

server side class

package com.example.test; import java.io.ioexception; import java.util.date; import javax.websocket.onopen; import javax.websocket.session; import javax.websocket.server.serverendpoint; @serverendpoint("/testbattle") public class serverside { @onopen public void onopen(session session) throws ioexception { system.out.println("welcome" + new date()); session.getbasicremote().sendtext("hello websockets"); } }

if care launching server side endpoint, can add together main method application entry, note won't allow jetty maven plugin run application because jetty web container based on servlets.

package com.example.websocket; import org.eclipse.jetty.server.server; import org.eclipse.jetty.servlet.defaultservlet; import org.eclipse.jetty.servlet.servletcontexthandler; import org.eclipse.jetty.servlet.servletholder; import org.eclipse.jetty.websocket.jsr356.server.deploy.websocketservercontainerinitializer; public class serverstarter { public static void main( string[] args ) throws exception { server server = new server(8080); final servletholder servletholder = new servletholder(new defaultservlet()); final servletcontexthandler context = new servletcontexthandler(); context.setcontextpath("/"); context.addservlet(servletholder, "/*"); server.sethandler(context); websocketservercontainerinitializer.configurecontext(context); server.start(); server.join(); } }

if intending utilize websockets in plain web app, have register websocket handler (which should serverside in case) jettyservlet (which should of subtype ``) , register latter (jettyservlet) web.xml file , not serverside class:

web.xml:

<web-app> <display-name>websocketapp</display-name> <servlet> <servlet-name>wsservlet</servlet-name> <servlet-class>com.example.test.myjettyservlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>wsservlet</servlet-name> <url-pattern>/</url-pattern> </servlet-mapping> </web-app>

myjettyservlet:

package com.example.test; public class myjettyservlet extends websocketservlet { @override public void configure(websocketservletfactory factory) { factory.register(serverside.class); } }

serverside:

@websocket public class serverside { @onopen public void onopen(session session) throws ioexception { system.out.println("welcome" + new date()); session.getbasicremote().sendtext("hello websockets"); } }

java xml maven java-ee web.xml

No comments:

Post a Comment