maven+jetty插件调试web项目的一点总结

此文章我在百度博客也发布了一篇:http://www.baidu.com/p/200770842223

1、首先看该文章的您需要对maven有一个初步的了解,知道maven项目的结构,并知道如何用maven搭建web项目,这里不再细说,网关有很多文章,请读者自己查阅。

2、搭建好web项目以后,可以采用在pom.xml中添加jetty插件的形式调试web项目。

3、我感觉自己采用的调试方式还比较麻烦,网上说有更简单的方式,可以配置插件直接将src/test/resources/中的资源直接拷贝到src/main/webapp/目录下,我这里没有配置这样的插件,需要的朋友可以自己添加一下,插件的名字是maven-resources-plugin。

调试的关键就是需要将相应的配置文件和文档拷贝到src/main/webapp目录下

4、调试的过程中遇到过几次问题,一个是jetty刚启动的时候就报错了, 

2014-03-0311:08:37.973:org.apache.jasper.runtime.JspFactoryImpl:WARN:
Exception initializing page contextjava.lang.VerifyError: (class: org/apache/jasper/runtime/PageContextImpl,method : getELResolver signature: ()Ljavax/el/ELResolver;) Incompatibleargument to
function        at
org.apache.jasper.runtime.JspFactoryImpl.internalGetPageContext(JspFactoryImpl.java:141)       at
org.apache.jasper.runtime.JspFactoryImpl.getPageContext(JspFactoryImpl.java:94)       atorg.apache.jsp.main_jsp._jspService(org.apache.jsp.main_jsp:59)       atorg.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:93)       at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)       at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:373)       at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:477)       atorg.apache.jasper.servlet.JspServlet.service(JspServlet.java:371)

解决办法,将jetty依赖的jar包的作用范围改为test:

参考文档:http://markmail.org/message/vffni4hi26hqmyur

5、由于很久没用jsp了,使用jsp时,想在jsp中输出异常,采用jsp的内置对象exception时,一直无法使用,就在page指令中添加了一个isErrorPage="true"熟悉,可以使用了,但是程序运行时又报了一个NullException。后来想起来了,我上面的做法是错误的,如果在一个页面上添加isErrorPage="true"熟悉,表示这个页面是异常处理页面,是当其他页面发生异常时可能会指向此页面,要想输出异常,可以直接在jsp中使用try,catch进行捕获,跟在java类中使用是一样的。但是在ie下,如果您的浏览器设置的是现实友好http提示信息.则浏览器给你返回的是 HTTP 500 错误,网站无法显示该页面.

这让浏览者会以为服务器有问题了呢.其实是浏览器自身设置的问题,鉴于这个原因,这个属性的使用就不太值得推荐了.毕竟要考虑客户的体验的嘛,呵呵.

6、还需要在web.xml中添加error-page配置。

7、之前还遇到过用jetty调试时还遇到过jar包和web.xml配置的版本不一致的问题,那个异常的名字我忘记了,当时eclipse默认的web.xml配置的version是2.4,后来改为2.5就可以了,如果没有报那样的异常,仍然采用2.4即可。

maven+jetty插件调试web项目的一点总结,古老的榕树,5-wow.com

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。