Jetty使用过程中常见错误:
来自:http://wang5598.iteye.com/blog/1562352
一、空指针异常:
- java.lang.NullPointerException at sun.net.www.protocol.jar.JarURLConnection.getUseCaches(JarURLConnection.java:309)
可以通过在etc/jetty.xml中添加
- <Set class="org.eclipse.jetty.util.resource.Resource" name="defaultUseCaches">false</Set>
出处:http://stackoverflow.com/questions/7715985/jsf2-on-jetty-gives-randomly-zip-file-closed-but-works-when-running-from-maven
===========================================
二、"zip file closed"的错误:
将jetty_home/lib/jetty-webapp-8.1.4.v20120524.jar中webdefault.xml中gzip的value由true(默认)改为false,就不会再出现该错误了。
- <init-param>
- <param-name>gzip</param-name>
- <param-value>false</param-value>
- </init-param>
按上述办法处理,只是治标不治本;原本启用Gzip是为了实现http传输压缩,提供网站的访问效率,如果需要实现改功能的话,建议还是设置gzip为true;在true的情况下,需要在web.xml中配置gzip的过滤器:
- <filter>
- <filter-name>jettyGzipFilter</filter-name>
- <filter-class>org.eclipse.jetty.servlets.GzipFilter</filter-class>
- <init-param>
- <param-name>mimeTypes</param-name>
- <param-value>text/javascript,application/x-javascript,text/html,text/css,image/gif,image/png,image/jpg</param-value>
- </init-param>
- </filter>
- <filter-mapping>
- <filter-name>jettyGzipFilter</filter-name>
- <url-pattern>/*</url-pattern>
- </filter-mapping>
jettyGzipFilter的已经包含在jetty-servlets-8.1.4.v20120716.jar中,如果进行了上述配置,还是有zip file closed的话,查看jetty的版本,如果在8及其以下的版本中,在etc/jetty.xml的文档最下面,添加上:
<Set class="org.eclipse.jetty.util.resource.Resource" name="defaultUseCaches">false</Set>
这个东西本来是jetty7.6版本中出现的一个BUG,在官方的BUG report中有提到,加上上面的配置后就不会再出现错误了。
进行了该设置后,大家可以在http://tool.chinaz.com/Gzips/ 上检测自己的网站是否启用了Gzip压缩传输。
===========================================
三、有些同学不会启动Jetty,囧啊:
windows下面使用cmd的cd命令,进入到jetty的安装目录下面,直接打java -jar start.jar就可以启动了。。Linux下面就更简单。操作一样的。。
===========================================
四、在Myeclipse下Jetty不能自动部署web工程的问题:
这是因为Jetty默认是考虑使用缓存文件以提供访问效率和稳定性来考虑的,如果是开发测试的话,可以修改掉Jetty的该项配置(webdefault.xml):默认为true,修改为false,就可以自动部署了。
- <init-param>
- <param-name>useFileMappedBuffer</param-name>
- <param-value>false</param-value>
- </init-param>
===========================================
还有最近看了新版本的Tomcat,其也已经加入了对异步和websocket的支持,如果您对tomcat使用比较熟悉的话,其实可以考虑使用最新版本的tomcat也可以的
浙公网安备 33010602011771号