让Jetty更加开胃

Mavenjetty-plugin 很好用,我是蛮喜欢,一直在用,现在做开发做测试基本离不开了,一条命令 mvn jetty:run 下去,感觉一个新世界被打开了一样。

不过在 window 上的 eclipse 里,它并不是很乖,主要是停不下来,传说这个是 window 平台上的一个硬伤,幸好解决方法还是有的,采取调试,Remote Java Application 的调试里有个选项 Allow termination of remote VM,可以在一定程度上解决这个问题,有点曲线,不过也方便,随时可以调试。我主要还是在 linux 环境下使用,因此这个问题基本对我不影响。

除了平台的问题,还遇到了一个 Form too large xxxxxx>200000 的问题,一开始没看清楚报错,使劲在 struts2 的范围里面找解决方法,以为是某个设置影响它约束了接受的 form 的大小。还好在无敌的 google 引导下,终于清楚了这是 jetty 在报错,它的默认参数里面有个限制。问题清楚了,解决方法却有点扑朔迷离,最初找到一个 maven.jetty.maxformcontentsize,看起来很接近,实际上只是用于特定软件内,扩大范围至 maxFormContentSize 再找,终于找到了一样的情况了,恼火的是一点进去立马撞墙,这时真的是为了接近真相,不得不继续深入虎穴(需翻墙)
下面配置的片段,想设多大就多大。

<plugin>
	<groupId>org.mortbay.jetty</groupId>
	<artifactId>maven-jetty-plugin</artifactId>
	<version>6.1.12</version>
	<configuration>
		<systemProperties>
			<systemProperty>
				<name>org.mortbay.jetty.Request.maxFormContentSize</name>
				<value>100000000</value>
			</systemProperty>
		</systemProperties>
		<scanIntervalSeconds>10</scanIntervalSeconds>
	</configuration>
</plugin>

不过,问题是为什么 jetty 会有这样一个默认参数存在呢?
设置成非常大之后的确可以解决问题,但是会不会对性能之类的造成影响呢?

相关博文:

  1. 奇怪的乱码