On this page... (hide)

  1.   1.  关于应用服务器
  2.   2.  JSP开发环境
  3.   3.  数据库
  4.   4.  Tomcat的一个Bug

1.  关于应用服务器

超轻量级应用服务器TJWS,体积大约是Jetty的五分之一。

2.  JSP开发环境

下面写的开发环境用lomboz,虽然用的人不少,但是有一些固有的缺点,比如每次测试站点都得重启tomcat,据说对大型项目的处理速度也相当缓慢。目前我觉得比较可能觉得顺手的一个插件是IBM Web Tools for Eclipse,好像是IBM把WSAD里面的J2EE开发模块独立出来捐献给开放源码了。

有多种开发环境支持JSP开发,我目前使用的是在Eclipse环境下安装lomboz插件作为JSP开发环境。Eclipse的官方主页在http://www.eclipse.org ,lomboz的官方主页在http://www.objectlearn.com/index.jsp 。虽然网上关于lomboz安装的文档很多,但我打算参照官方提供的英文的插件安装说明,地址在http://www.objectlearn.com/support/docs/installation/install.jsp

安装该文档安装lomboz后,在lomboz中启动tomcat服务器会有问题。开始我使用的tomcat4.1.29,会出现类似“java.lang.reflect.InvocationTargetException”这样的问题;后来换成tomcat5.0.28,原来的问题没有了,但是又出现了类似“Bootstrap: Class loader creation threw exception”、“java.lang.NullPointerException”这样的问题。后来查到了解决办法,只要编辑Eclipse安装目录下的“plugins\com.objectlearn.jdt.j2ee_3.0.1\servers”目录下的“tomcat50x.server”文件,将其中的“-Djava.endorsed.dirs="${serverRootDirectory}/bin;${serverRootDirectory}/common/endorsed"”改为“-Djava.endorsed.dirs="${serverRootDirectory}/common/endorsed"”,一共有两处需要修改。之后就完全正常了。据说lomboz与tomcat4.x对应的脚本也有这个问题,不过我没有试验。

另外,据说tomcat5.x对get方法发送的中文信息会默认使用iso-8859编码来处理,因此会造成信息乱码,需要修改tomcat的配置文件来搞定。

3.  数据库

在Web程序开发中,好多情况还是要用到数据库,以往大多是使用MySql,现在使用JSP做开发还可以选择一个Java实现的小型开源关系数据库hsqldb,可以当作嵌入式数据库来用,官方网站地址是http://hsqldb.sourceforge.net/

官方文档给出了一个技巧:即使是将hsqldb作为嵌入式数据库模块与最终程序一起发布,那么在开发过程中仍可以将hdqldb作为独立服务器模式运行,这样可以调用外部的图形化数据库管理软件,方便数据调试,在最终发布的时候再将数据库访问方式更换为嵌入方式。

hsqldb的1.7.2以上版本(之前的版本不清楚)使用Java1.4编译,因此其中附带的hsqldb.jar在Java1.3中使用的时候会报诸如“java.lang.NoClassDefFoundError: java/sql/Savepoint”这样的错误。如果想在Java1.3中使用hsqldb,则需要自己使用早期版本的Java环境自行编译。

  • hsqldb的客户端有人推荐使用squirrel-sql,但也许基于squirrel-sql做的JFaceDbc使用感觉更好(这是一个Eclipse的插件,新版本还收钱)。根据我自己的试用经验,squirrel-sql只不过是能显示数据库的信息而已,如果要修改信息还是要通过自己手写sql的方式完成,基本可以说,真不觉得比hsqldb自带的GUI工具好……
  • http://www.sunopsis.com/corporate/us/products/jdbcforxml/ 提供了用JDBC接口以sql方式访问XML文件的库,是商业软件,但有免费版。

4.  Tomcat的一个Bug

在Tomcat中运行JSP语句中的response.sendRedirect()函数时,有时会发生Tomcat出现500内部错误。只要在调用response.sendRedirect()函数的位置的后面,加一句return;就可以解决这个问题。

GlossyBlue theme adapted by David Gilbert
Powered by PmWiki