jetty服务器上运行html页面,web项目嵌入Jetty运行的两种方式(Jetty插件和自制Jetty服务器)...

自制Jetty服务类

这种方式可以支持websocket,如果项目中需要使用到可以试试这种。

首先pom.xml引入jetty的依赖:

org.eclipse.jetty.aggregate

jetty-all

9.2.14.v20151106

javax.servlet

javax.servlet-api

3.1.0

org.eclipse.jetty

jetty-jsp

9.2.15.v20160210

接下来自己写一个JettyServer类:我自己的完整代码如下

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)

这种方式运行项目可以在开发的时候用用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值