Ticket #65 (closed 优化: 已处理)

Opened 13 years ago

Last modified 12 years ago

jsp接口正常访问检测

Reported by: kuangjuhuan Owned by: kuangjuhuan
Priority: 重要的(3) Milestone:
Component: 核心模块 Version: BBS7.0
Keywords: jsp编译问题 Cc:
Due Date: 15/07/2013

Description

在开发过程中,可能常常会改动方法名或增加、减少参数之类的,使用maven编译的时候,即便是jsp发生错误,编译过程中并不会报错提示,因此可能等应用上线了之后才发现某个jsp访问不了,报500,因为编译失败问题可能会造成线上应用的访问速度下降等问题,因此需要开发一个脚本来检测我们所有的jsp接口是否能正常访问。

Change History

comment:1 Changed 13 years ago by kuangjuhuan

  • Owner changed from qinhongyuan to kuangjuhuan
  • Status changed from new to assigned

comment:2 Changed 13 years ago by kuangjuhuan

1.最初打算写一个脚本,把所有jsp页面都访问一次,再根据返回的状态码判断该页面是否能正常访问,但是发现直接访问接口,一方面接口数量较多,检测时间长,另一方面,如果直接访问接口,可能会造成数据上的修改,因为放弃此想法。
2.maven有个jspc-maven-plugin插件,可以预编译jsp文件,但是该插件尚未成熟,很多jsp语法都不能友好地支持,因为同样放弃此方法。
3.最后发现在resin启动的时候可以把所有的jsp文件都预先编译,需要在web.xml文件加上如下配置(已上传至svn):

    <web-app xmlns="http://caucho.com/ns/resin">

    <listener>
        <listener-class>com.caucho.jsp.JspPrecompileListener</listener-class>
        <init>
            <extension>jsp</extension>
            <extension>jspf</extension>
        </init>
    </listener>

加上以上配置后,我们每次修改代码,启动resin的时候,会预先编译所有jsp文件,因此可以预先知道jsp是否存在编译错误。
需要注意的是,我们打整包更新的时候,确保了所有jsp编译通过后,可能需要把以上代码注释再次编译。

如果大家发现有更好的检测方法可以提出来。

Version 0, edited 13 years ago by kuangjuhuan (next)

comment:3 Changed 13 years ago by kuangjuhuan

  • Status changed from assigned to accepted

comment:4 Changed 12 years ago by dingjianyong

  • Cc lifeng, qinhongyuan, wanganning, chenyang, dingjianyong removed
  • Status changed from accepted to closed
  • Resolution set to 已处理
Note: See TracTickets for help on using tickets.