xiayu 发表于 2017-2-27 09:31:52

在项目中直接启动jetty,发布自己

代码很简单,主题代码就是4行
public class Main {
public static void main(String[] args) throws Exception {
Server server = new Server(8080);
WebAppContext webContext = new WebAppContext("web","/web");
server.setHandler(webContext);
//ServletContextHandler context = new ServletContextHandler();
//context.setContextPath("/");
//context.addServlet(SecureServlet.class, "/*");
//server.setHandler(context);
server.start();
}

WebAppContext的两个参数,第一个参数是项目要发布的目录,web表示项目目录下的web文件夹为发布目录。第二个参数是发布的url,如/web表示:域名/web 是项目访问的根url
这里没用ServletContextHandler ,这个是发布servlet的,不需要支持发布项目,也不需要支持jsp。
项目中使用jetty发布项目注意的地方:主要是jar包的导入
1 需要servlet-api.jar,不让会报这个错:
java.lang.NoClassDefFoundError: javax/servlet/ServletRequestListener

2 需要org.apache.jasper.glassfish的包 和jsp-api的包r 以及javax.el的包,这样才能支持jsp。这些jar是在下载的jetty的lib的jsp目录下。
3 我开始的时候根据报错导入ant的包,到如tools包,在不需要jasper glassfish的包居然也可以支持jsp,好神奇。
附件是项目的源码
页: [1]
查看完整版本: 在项目中直接启动jetty,发布自己