Web应用程序布署时遇到的奇怪问题

目前正在做一个新的项目,采用和springside类似的架构,MVC框架用Struts2。开发环境使用Eclipse3.3 Europa + subclipse + springide-2.0。开发的时候web服务器采用tomcat5.5,生产环境中可能会使用JBoss或Weblogic等。本来打算使用 jetty作为开发用jsp容器的,但是eclipse3.3对jetty的支持不够,所以放弃了。
但是eclipse3.3对tomcat的支持也非常凑合,经常在修改文件之后,tomcat中的内容不变必须重新启动才会有效果。如果修改的是class,那么还得重新布署,超麻烦。于是开始怀念使用jetty 的日子,那时候用bea workshop for jsp3.3(eclipse 3.2.2),它对jetty的支持非常好。
能不能在eclipse3.3下使用jetty呢,好办,写一个jetty的配置文件,然后在eclipse中加入jetty/lib下的3个jar文件和start.jar,然后运行org.mortbay.start.Main这个类就可以了www.iteye.com/topic/1630有详细的说明(它是运行jetty.jar下的一个类)。配置完成后,开始运行。控制台输出的信息说明布署成功了,但是,奇怪的现象发生了,所有使用EL表达式的页面都报异常。为了查明原因,我用ant为web目录打了一个war包,布署到jetty/webapps下,运行java -jar start.jar启动jetty,还是不行。布署到jboss4.2下,丫的根本就不能编译带有EL表达式的页面。只有在tomcat5.5下可以正常运行。
为了查明是项目本身的问题,还是开发环境的问题。我启动了bea workshop for jsp3.3(ws3.3),从svn重新下载项目,然后布署到jetty。KAO,居然成功了。用同样的ant任务打war包,分别布署到jboss和 tomcat、jetty下,都OK。
我于是参考ws3.3的布署方式,在eclipse3.3中重新启动jetyy,问题依旧。
最奇怪的是,我升级ws3.3到ws101,结果101下布署也不行,而且ws101的布署方式很BT,居然是布署war包到jetty下。怎么越升级越差劲了?

最后总结一下:

   1. 一个很正常的Web项目,在bea workshop for jsp3.3(build 608)下,布署或打包后布署,无论web server是什么,都OK。
   2. 在Eclipse3.3 Europa下,布署到Tomcat5.5下OK,但是其他web server(主要测试了jetty和jboss),都出现EL不能解析或不能编译的问题。
   3. 在bea workshop for jsp10.1下,与Eclipse3.3 Europa的情况类似。但是报的异常不同。
   4. 最奇怪的是,不同开发环境下执行同样的ant命令,打成的war包,ws3.3下打包可以成功布署,其他都失败。

最后只能决定使用WS3.3,但是为什么会出现这些问题呢?

你可能感兴趣的:(tomcat,Web,应用服务器,ant,jboss)