在使用maven开发web项目极大地方便了jar包的依赖,在测试时也可以集成Servlet容器,从启动速度和量级上看,Jetty无疑是不二选择,然而从8.x开始,如果你的web项目中不包含数据库访问(或者说没有事务管理器)的话,在其启动时会提示找不到事务管理器,输出信息如下:
oejpw.PlusConfiguration:No Transaction manager found - if your webapp requires one, please configure one.
而且启动过程会暂停十几秒,在反复调试代码时很浪费时间,经过多天在网上搜索资料,终于找到了解决办法。
首先是pom.xml中关于插件的配置:
?org.mortbay.jetty
?jetty-maven-plugin
?8.1.15.v20140411
?
? stop
? 9999
? 1
? ${project.basedir}/src/main/resources/jetty-context.xml
?
? ?/
?
?
? ?
? ? 80
? ? 60000
? ?
?
?
重要的是加上配置,我们要对jetty的服务器属性进行配置。本例中把配置文件放到了/src/main/resources中(如果你不希望打包时带上这个文件,可以放到/src/test/resources中,改下配置即可),文件名为:jetty-context.xml。接下来是配置文件:
?
? org.eclipse.jetty.server.webapp.WebInfIncludeJarPattern
? .*/.*jsp-api-[^/]\.jar$|./.*jsp-[^/]\.jar$|./.*taglibs[^/]*\.jar$
?
至于为什么这样配置,还没有进行深入研究。