jetty的maven插件配置(pom.xml)

    • scanIntervalSeconds 配置扫描时间时间, 如果有文件变动, 如pom.xml,web.xml或classes, 则jetty会重新加载应用, 相当方便

    • contextPath 配置ROOT, 即将web的上下文路径, 改为 /

    • 将jetty默认的uri编码, 改为GBK (jetty默认是utf8)

    1. <plugin>
    2. <groupId>org.mortbay.jetty</groupId>
    3. <artifactId>maven-jetty-plugin</artifactId>
    4. <configuration>
    5. <contextPath>/</contextPath>
    6. <connectors>
    7. <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
    8. <port>8080</port>
    9. </connector>
    10. </connectors>
    11. <reload>automatic</reload>
    12. <scanIntervalSeconds>3</scanIntervalSeconds>
    13. <systemProperties>
    14. <systemProperty>
    15. <name>org.mortbay.util.URI.charset</name>
    16. <value>GBK</value>
    17. </systemProperty>
    18. </systemProperties>
    19. </configuration>
    20. </plugin>

    jetty的另一段配置(修改web.xml)

    用于解决使用jetty后无法修改文件问题(错误描述:请求的操作无法在使用用户映射区域打开的文件上执行)

    1. <servlet>
    2. <servlet-name>default</servlet-name>
    3. <servlet-class>org.mortbay.jetty.servlet.DefaultServlet</servlet-class>
    4. <init-param>
    5. <param-name>useFileMappedBuffer</param-name>
    6. <param-value>false</param-value>
    7. </init-param>
    8. <load-on-startup>0</load-on-startup>
    9. </servlet>

    修改mvn时的java运行时参数 (解决 PermGen space问题)

    1. set MAVEN_OPTS=-XX:MaxPermSize=128M
    2. mvn jetty:run

    PermGen space的全称是Permanent Generation space,是指内存的永久保存区域,这块内存主要是被JVM存放Class和Meta信息的,Class在被Loader时就会被放到PermGen space中,它和存放类实例(Instance)的Heap区域不同,GC(Garbage Collection)不会在主程序运行期对PermGen space进行清理,所以如果你的应用中有很多CLASS的话,就很可能出现PermGen space错误,这种错误常见在web服务器对JSP进行pre compile的时候。如果你的WEB APP下都用了大量的第三方jar, 其大小超过了jvm默认的大小(4M)那么就会产生此错误信息了。