适用与jetty7和jetty8
1,jetty中使用GBK编码
首先编码过滤器肯定是需要的,然后在启动服务器命令中添加如下参数
-Dorg.eclipse.jetty.server.Request.queryEncoding=GBK -Dorg.eclipse.jetty.util.UrlEncoding.charset=GBK -Dorg.eclipse.jetty.util.URI.charset=GBK
2,jetty中通过jndi方式使用p6spy
(1)在lib目录添加jdbc目录,并添加以下jar包
commons-collections.jar
commons-dbcp-1.2.1.jar
commons-pool-1.3.jar
log4j-1.2.15.jar
ojdbc6.jar
p6spy.jar
(2)在start.ini的 OPTIONS中添加jdbc模块配置
(3) 数据源配置
<New id="ds_dev" class="org.apache.commons.dbcp.BasicDataSource">
<Set name="driverClassName">oracle.jdbc.driver.OracleDriver</Set>
<Set name="url">jdbc:oracle:thin:@10.0.20.80:1521:dev</Set>
<Set name="username">dev</Set>
<Set name="password">dev</Set>
<Set name="maxActive" type="int">100</Set>
<Set name="maxIdle" type="int">30</Set>
<Set name="maxWait" type="int">1000</Set>
<Set name="defaultAutoCommit" type="boolean">true</Set>
<Set name="removeAbandoned" type="boolean">true</Set>
<Set name="removeAbandonedTimeout" type="int">60</Set>
<Set name="logAbandoned" type="boolean">true</Set>
<Set name="testOnBorrow" type="boolean">true</Set>
</New>
<New id="p6spyDataSourceTarget" class="com.p6spy.engine.spy.P6DataSource">
<Set name="realDataSource">realJndiName</Set>
</New>
<New class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>realJndiName</Arg>
<Arg>
<Ref id="ds_dev" />
</Arg>
</New>
<New class="org.eclipse.jetty.plus.jndi.Resource">
<Arg>devdbDS</Arg>
<Arg>
<Ref id="p6spyDataSourceTarget" />
</Arg>
</New>
其中程序中实际使用的jndi名称是de
vdbDS。p6spyDataSourceTarget起到一个代理的作用。
3,在开发中避免服务器运行时资源文件被锁定,不能修改
修改etc\webdefault.xml中useFileMappedBuffer的值为false
<init-param>
<param-name>useFileMappedBuffer</param-name>
<param-value>false</param-value>
</init-param>
4,jetty服务器java.sql.SQLException: Already closed处理
在jetty的数据源配置中添加如下配置
<Set name="testOnBorrow" type="boolean">true</Set>
<Set name="testOnReturn" type="boolean">true</Set>
<Set name="testWhileIdle" type="boolean">true</Set>
<Set name="validationQuery" type="String">select 1 from dual</Set>
分别是添加了连接池取出,返回,和空闲时是否测试连接的有效性。
其中validationQuery的测试连接有效性的sql配置需要根据数据库进行调整。
5,nojdk error
在start.ini中添加如下配置:
-Dorg.apache.jasper.compiler.disablejsr199=true
在jetty.xml中添加:
<Call class="java.lang.System" name="setProperty"> <Arg>org.apache.jasper.compiler.disablejsr199</Arg> <Arg>true</Arg> </Call>