`
ygxdha
  • 浏览: 5976 次
最近访客 更多访客>>
社区版块
存档分类
最新评论

项目一期结束后的思考。怎么样改善tomcat的工作环境

阅读更多
项目一期已经完成。在最后的测试,bug修改,回归阶段,eclipse3.3 + wtp + tomcat5.5+jdk1.5给整个项目组带来了巨大的无力感。问题出在hot deploy上,在上面所述的环境下,任何java源代码的更改都会导致wtp的重启,session的失效,之前的页面操作需要重兴做一遍才能回到需要测试的页面。如果java web项目能做到ruby那样的hot deploy该多好啊。可惜项目2期依然是java的环境,看来只有自己想办法改善了。查了下网上的资料,大概有如下几条路可以走。

1:改用Tomcat 的嵌入式版本。
优点:启动速度更快,wtp上publish阶段所需要的copy 文件的时间可以节约下来。

疑问:Tomcat 的嵌入式版本是否支持hot deploy。感觉需要tomcat支持hot deploy 需要修改tomcat的classloader机制。

2:修改tomcat的classloader机制。在classloader的分层里面,tomcat的 classloader属于app 级别的classloader。可以通过修改tomcat的源代码来解决java类修改不需要重启tomcat的功能。

疑问:网上该方法的资料很少,javaeye上也只看到大家讨论过修改web中的配置文件,不需要重启tomcat的讨论,一切不确定因素太多了,项目等不得。

3:改用classfish v2来替代tomcat。
测试过一下。虽然不需要重启,不过build的时间依然不短,而且session还是失效了。效果没有现象中的理想。

4:wtp插件的问题。
将wtp插件改成使用sysdeo 的tomcatplugin插件。tomcatplugin插件如果发现有java文件修改,如果该文件的修改是tomcat 的classloader不支持hotdeploy,会给你提示。让你选择是否重启,这个比wtp已经人性化一点了。不过还是不能实现hotdeploy。

5:使用 javarebel

看javarebel的官网,上面提到的hotswap功能的确让人心动。不过是收费的,而且相关的使用经验和资料太少,风险比较大。


应该选择哪种方法解决问题,希望有经验的大大给点经验。
分享到:
评论
29 楼 sunrie 2008-08-27  
使用嵌入tomcat,用debug方式,是不需要重启就redeploy的
28 楼 liran_java 2008-08-27  
qrtt1 写道
		StandardContext context = (StandardContext) this.embedded
				.createContext(contextPath, absolutePath);
		context.setReloadable(reloadable);


tomcat 可以設 reloadable

27 楼 ssuupv 2008-08-12  
mmwy 方法我的不行啊.不知道为什么
26 楼 aids198311 2008-05-23  
收藏了.好贴!
25 楼 wufan0023 2008-05-22  
我的项目是使用嵌入Tomcat 在debug模式下可以实现热部署,但是有些文件的修改是不行的。还是会有重启的情况。一般性的修改java code 是可以的。
24 楼 mmwy 2007-12-14  
auauau 写道
javarebel 现在正在用,感觉启动速度慢了一倍,不过调试的效果还不错。我采用spring框架,新增加一个方法或者类,还是需要reload context的。
按照 mmwy 的方法,我没有设置成功,能不能再详细介绍一下,比如tomcat、eclipse版本都是什么。


eclipse-platform-3.3.1.1-win32
eclipse-JDT-3.3.1.1
eclipse-PDE-3.3.1.1
eclipse-CVS-Client-3.3.1.1
dtp_1.5.1_101607
emf-sdo-runtime-2.3.1
xsd-runtime-2.3.1
GEF-runtime-3.3.1
wtp-R-2.0.1-20070926042742

Tomcat是5.5.25和6.0.14


JDk1.6.0U3
23 楼 auauau 2007-12-14  
javarebel 现在正在用,感觉启动速度慢了一倍,不过调试的效果还不错。我采用spring框架,新增加一个方法或者类,还是需要reload context的。
按照 mmwy 的方法,我没有设置成功,能不能再详细介绍一下,比如tomcat、eclipse版本都是什么。
22 楼 永远的小菜 2007-12-13  
这个图形是在lomboz下的
21 楼 wplqw 2007-12-13  
2、Session中保存的对象没有实现Serializable接口。
=======================
有一定道理,
原来在weblogic部署一项目得时候偶尔出现这个提示
This   attribute   will   be   lost  
    upon   redeployment.   This   message   is   logged   only   once   per   session.

后来发现是一个HttpSessionBindingListener得实现类没有串列话造成得,导致在重部署得时候该HttpSessionBindingListener从会话上下文中丢失.后来实现了Serializable,就没这个提示了.
20 楼 neuzhujf 2007-12-13  
在网上查查关于Session序列化的问题。
当Reload的时候,Tomcat会将当前的Session进行序列化,
然后启动完成后再把Session恢复。
所以Session应该不会失效。

失效的原因:
1、相关的配置不对;
2、Session中保存的对象没有实现Serializable接口。

供讨论。
19 楼 boreas 2007-12-13  
sorphi 写道
boreas 写道
mmwy的做法我有一个疑问,虽然服务器没有重启,session也未失效,可是修改的类起作用了吗?尤其是静态常量的一些修改


试一下就知道了啊,起作用。



谢谢你了,因为我用的MyEclipse插件,所以没有试。MyEclipse修改类是不用重启的,但是常量和配置文件修改是需要手动重启的,否则也不起作用。所以有了上面的问题。
18 楼 e3002 2007-12-13  
我的怎么没有那个图形界面啊。tomcat5.5
17 楼 velna_007 2007-12-12  
试了一下,修改的类被重新加载了,但静态配置文件还是没有起作用,这个估计需要所使用的框架的支持了,不是tomcat能说了算的
16 楼 fkpwolf 2007-12-12  
JPDA(Java Platform Debugger Architecture)
15 楼 sorphi 2007-12-12  
boreas 写道
mmwy的做法我有一个疑问,虽然服务器没有重启,session也未失效,可是修改的类起作用了吗?尤其是静态常量的一些修改


试一下就知道了啊,起作用。
14 楼 boreas 2007-12-12  
mmwy的做法我有一个疑问,虽然服务器没有重启,session也未失效,可是修改的类起作用了吗?尤其是静态常量的一些修改
13 楼 vaja 2007-12-11  
我也觉得不用嵌入式版本,设置 reloadable 为 true 即可。
12 楼 lzmhehe 2007-12-10  
以前使用tomcat  知道修改reloadable 可以支持热部署
但是现在使用weblogic  那么在myeclipse环境下怎么支持呢
我的开发和发布目录是同一个
11 楼 sswh 2007-12-10  
引用
1:改用Tomcat 的嵌入式版本。<br />
优点:启动速度更快,wtp上publish阶段所需要的copy 文件的时间可以节约下来。<br />


不用嵌入式版本,直接把Tomcat当成Application来启动,也可以省下“publish阶段所需要的copy 文件的时间”。

启动main class指定为:org.apache.catalina.startup.Bootstrap
启动程序参数:start
启动虚拟机参数:-Dcatalina.base="D:\eclipse\workspace\test\Server" -Dcatalina.home="D:\apache-tomcat-5.5.23" -Djava.endorsed.dirs="D:\apache-tomcat-5.5.23\common\endorsed"
classpath指定为:bootstrap.jar、tools.jar、commons-logging.jar
source根据需要添加,主要为方便调试时跟踪进源代码。
10 楼 ygxdha 2007-12-10  
非常感谢mmwy 
tomcat5.5 tomcat6.用debug模式启动只要按照你的方式设置成reloadable后。就可以进行热部署

相关推荐

    Tomcat前后端一体项目环境搭建教程

    在IT行业中,构建一个从前端到后端的一体化项目环境是开发Web应用程序的重要环节。本教程将聚焦于使用Tomcat服务器作为Java后端的运行平台,并与前端进行集成,以实现完整的项目环境搭建。首先,我们需要理解Tomcat...

    java环境配置及使用tomcat项目部署

    Java 环境配置及 Tomcat 项目部署指南 Java 环境配置是 Java 开发的基础,它是指将 Java 开发环境安装到计算机上,并对其进行配置,以便于开发和运行 Java 程序。Tomcat 是一个流行的 Web 服务器软件,广泛应用于 ...

    安装JDK和tomcat环境变量配置

    安装 JDK 和 Tomcat 环境变量配置是 Java 开发环境的基础步骤,涉及到 JDK 和 Tomcat 的安装、环境变量的配置、Tomcat 的启动和测试。本文将详细介绍安装 JDK 和 Tomcat 环境变量配置的步骤和要点。 一、JDK 的安装...

    TOMCAT一键设置环境变量

    "TOMCAT一键设置环境变量"指的是通过一个脚本文件(如一键设环境变量Tomcat.bat)快速配置这些必要的环境变量,使得用户无需手动逐个设置,从而提高工作效率。 一、JAVA_HOME JAVA_HOME是最重要的环境变量之一,它...

    tomcat 中运行php 环境的jar包

    在IT行业中,将PHP环境集成到Tomcat服务器中是一个常见的需求,这主要为了利用Tomcat的性能优势同时处理Java和PHP应用。标题提到的"tomcat 中运行php 环境的jar包"正是指这样的解决方案,通过特定的Java桥接技术实现...

    tomcat 部署java项目 jar

    - Tomcat是Apache软件基金会的Jakarta项目下的一个核心项目,它是基于Java Servlet和JavaServer Pages技术的Web应用服务器。 - 它遵循Java EE规范,但只实现了其中的Web层,因此比完整的Java EE应用服务器更轻量级...

    eclipse项目配置tomcat步骤

    添加完成后,我们可以在 Eclipse 中看到 Tomcat 服务器环境的列表。 接下来,我们需要在 Eclipse 中创建一个新的 Tomcat 服务器实例。这可以通过 Window &gt; Show View &gt; Other &gt; Server &gt; server &gt; OK 来实现。在...

    项目-tomcat2

    项目-tomcat

    window tomcat项目迁移到linux

    【知识点详解】 在将Window上的Tomcat项目迁移到...迁移完成后,进行全面的功能测试以确保所有功能在新环境中正常工作。同时,保持更新和维护,确保安全性和性能。对于任何异常或错误,应根据日志进行排查和修复。

    tomcat源码阅读(一)——环境搭建

    在IT行业中,源码阅读是提升技术水平的重要途径之一,尤其是对于服务器端应用的开发者来说,理解Web服务器如Tomcat的工作原理能帮助我们更好地优化性能、排查问题。本篇将聚焦于"Tomcat源码阅读(一)——环境搭建...

    maven项目转动态web项目,部署到tomcat

    Maven 项目转动态 Web 项目并部署到 Tomcat 是一个常见的操作,特别是在 Eclipse 和 Tomcat 环境下。本文将详细介绍如何将 Maven 项目转换为动态 Web 项目,并将其部署到 Tomcat 中。 Maven 项目转换为动态 Web ...

    Spring Tool Suite 搭建tomcat配置调试环境

    Spring Tool Suite(STS)是基于Eclipse...这对于Spring开发者来说是一个基本但至关重要的工作流程,确保了开发环境的顺畅运行。在实际开发中,可以根据项目需求进行更复杂的配置,如添加数据库连接、配置Maven依赖等。

    tomcat服务器上部署项目

    总之,部署Java Web项目到Tomcat服务器是一个多步骤的过程,涉及到服务器配置、项目打包以及服务器管理等多个环节。理解这些知识点有助于优化开发流程,提高效率。在实际操作中,应根据具体需求选择适合的部署方式,...

    tomcat部署多个项目

    Apache Tomcat 是一款非常流行的 Java Web 应用服务器,广泛用于开发、测试以及生产环境中部署 Java Web 应用程序。当需要在同一台服务器上部署多个项目时,合理地配置 Tomcat 变得尤为重要。本文将详细介绍在 ...

    项目-tomcat4

    项目-tomcat3

    创建一个Web项目并向Tomcat发布.

    创建一个Web项目并向Tomcat发布.

    Linux下使用tomcat发布Web项目

    安装完成后,需要配置 Tomcat 的环境变量,包括 JAVA_HOME、PATH 等变量。 在 Linux 系统下,还需要了解一些基本的命令,例如 pwd、cd、ls、mkdir、cp、mv、rm 等命令,这些命令将帮助开发者快速地操作文件和目录。...

    经典项目示例及Tomcat

    这是一份针对IT从业者的重要资源,旨在提供实际工作中的参考案例,帮助开发者理解和掌握项目开发流程,同时包含了免安装版的Tomcat6,便于在本地环境中快速部署和测试Web应用。 【描述】提到的"经典的实战项目示例...

Global site tag (gtag.js) - Google Analytics