import javax.websocket.server.ServerContainer;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.webapp.WebAppContext;
import org.eclipse.jetty.websocket.jsr356.server.deploy.WebSocketServerContainerInitializer;
import org.json.JSONObject;
import com.web.test.MyWebSocket;
public class JettyServer {
public static void main(String[] args) {
int port = 8080;
Server server = new Server(port);
WebAppContext webAppContext = new WebAppContext("webapp","/web");
webAppContext.setDescriptor("webapp/WEB-INF/web.xml");
webAppContext.setResourceBase("src/main/webapp");
webAppContext.setDisplayName("web");
webAppContext.setClassLoader(Thread.currentThread().getContextClassLoader());
webAppContext.setConfigurationDiscovered(true);
webAppContext.setParentLoaderPriority(true);
server.setHandler(webAppContext);
System.out.println(webAppContext.getContextPath());
System.out.println(webAppContext.getDescriptor());
System.out.println(webAppContext.getResourceBase());
System.out.println(webAppContext.getBaseResource());
try {
ServerContainer wscontainer = WebSocketServerContainerInitializer.configureContext(webAppContext);
// Add WebSocket endpoint to javax.websocket layer
wscontainer.addEndpoint(MyWebSocket.class); //这行是如果需要使用websocket就加上,不需要就注释掉这行,mywebsocket是自己写的websocket服务类
server.start();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("server is start, port is "+port+"............");
}
}
运行项目就只要运行这个main函数即可。
假如正式发布需要放到tomcat里运行,需要把下面这个依赖去掉,tomcat和下面的依赖不兼容,会报错(javax.servlet.ServletException: Not running on Jetty, JSR-356 support unavailable)
这种方式运行项目可以在开发的时候用用