springmvc内置jetty启动问题
错误
相关代码
启动类
package com.xxx.channel.riskcontrol;
import org.eclipse.jetty.server.Server;
import org.eclipse.jetty.servlet.DefaultServlet;
import org.eclipse.jetty.servlet.ServletHolder;
import org.eclipse.jetty.webapp.WebAppContext;
import org.springframework.web.context.ContextLoaderListener;
import org.springframework.web.servlet.DispatcherServlet;
import org.springframework.web.servlet.ResourceServlet;
public class Launcher {
public static final int PORT = 81;
public static final String CONTEXT = "/";
private static final String DEFAULT_WEBAPP_PATH = "src/main/resources";
/**
* 创建用于开发运行调试的Jetty Server, 以src/main/webapp为Web应用目录.
*/
public static Server createServerInSource(int port, String contextPath) {
Server server = new Server();
// 设置在JVM退出时关闭Jetty的钩子。
server.setStopAtShutdown(true);
WebAppContext webContext = new WebAppContext(DEFAULT_WEBAPP_PATH, contextPath);
ContextLoaderListener listener = new ContextLoaderListener();
webContext.setInitParameter("contextConfigLocation", "classpath:business-xxxx.xml,classpath*:xx-context.xml,classpath*:xx-context.xml, classpath*:xxx.xml,classpath*:xxxxxx.xml,classpath*:xxxxxx.xml");
// webContext.setInitParameter("contextConfigLocation", "mvc-config.xml");
webContext.setResourceBase(DEFAULT_WEBAPP_PATH);
webContext.addEventListener(listener);
ServletHolder holder=new ServletHolder(new ResourceServlet());
webContext.addServlet(holder, "/resources/*");
holder = new ServletHolder(new DispatcherServlet());
holder.setInitParameter("contextConfigLocation", "classpath:mvc-config.xml");
webContext.addServlet(holder, "/");
holder=new ServletHolder(new DefaultServlet());
webContext.addServlet(holder, "*.html");
webContext.setDescriptor("src/main/webapp/WEB-INF/web.xml");
// 设置webapp的位置
// webContext.setClassLoader(Thread.currentThread().getContextClassLoader());
// webContext.setErrorHandler(null);
// webContext.addServlet(new ServletHolder(new DispatcherServlet(context)), "/*");
server.setHandler(webContext);
return server;
}
/**
* 启动jetty服务
*
* @param port
* @param context
*/
public void startJetty(int port, String context) {
final Server server = Launcher.createServerInSource(PORT, CONTEXT);
try {
server.stop();
server.start();
server.join();
} catch (Exception e) {
e.printStackTrace();
System.exit(-1);
}
}
public static void main(String[] args) {
new Launcher().startJetty(81, "");
}
}
探索
找了很多例子,最终怀疑是jetty配置springmvc上下文加载配置文件,不对,查询官网也没一个合适的例子,我是仿照这个例子:https://github.com/bkielczewski/example-... ,我和他的不同点在于他是通过注解去配置文件,而我这里是多个xml文件,有没相关经验者,提供下这段代码该如何写,让jetty正确加载spring配置文件,初始化spring的servlet。并且可以运行 java -jar xx.jar运行这个项目。谢谢了~~相关敏感字用xxx代替了,另外还想问下,有没更好的内置jetty启动方法,一个jar包搞定,不需要容器。
相关阅读:
安装Docker的时候文档中Installing bash completion scripts这一段没看懂
MongoDB 有图形化的日志工具和客户端推荐吗
一个Python爬虫字符串相关的错误?
PHP用代码机器人生成代码是怎么回事?
intellij idea问题
Java中是否有接口可以调用JSTL的表达式求值功能?
fetch-ie8在IE8下的json解析问题
创建服务时,$scope注入报错
css中关于设置透明度的问题,有点混乱
在使用phpstudy的集成环境时,txt文件不能读取是什么原因呢?
httpfs部署问题
vs2013怎么快速生成 类成员变量的get,set函数
SourceTree 下面的diff显示,为什么总是只显示一个文件?
一个页面怎么用另一个页面传过来的东西啊?
zookeeper自身节点故障
PHP图片增加水印后文件大小问题
数据查找问题?
backbone fetch到的数据默认全部放入model里,实际上只想把数据里的data保存成一个models,怎么弄?
怎么在代码层处理app客户端同个人同时并发多个请求?
关于xpath的问题