疑问一:Tomcat怎么设置才能自动加载上传的.class类文件?
疑问二:Tomcat为什么一断网就出现故障,也就是网站访问异常?有关题一:目前我们用Tomcat5.59作为网站服务器,本地编译好的class文件,用FTP(CuteFTP或者FlashXP)上传到服务器上,Tomcat不会自动加载(新类)和更新(同名类)上传的文件,必须每传一次就得重新启动Tomcat一次,异常恼火,请问各位大侠有否好方法解决之,在不改换服务器的前提下.有关题二:本Tomcat5.5.9用作内部服务器,ADSL做的VPN,但是每次ADSL断线,内部系统的访问就出现异常,每种不明缘由的错误,但重启Tomcat后,一切又恢复正常,请问各路大仙,这个是怎么回事有关问题三:本人在用Tomcat5.5.16作测试服务器时,新建了两个站点,分别用8080和9090指向,访问方法为:
http://127.0.0.1:8080  (或者http://127.0.0.1,因为整合了Apache2.0)
http://127.0.0.1:9090
本人自己写了一个MVC框架,在Tomcat5.5.9下面访问一点问题都没有,但是移到5.5.16下面就是不能访问部分控制器,请大家给点建议!以上是俺用Tomcat所碰到的全部问题集,希望能有高人相助!

解决方案 »

  1.   

    TOMCAT每个版本变化很大,有很多程序在不同的版本会有不同的结果,建议如果用一个版本不要升级,当然如果你能解决更换版本的问题
      

  2.   

    http://www.apache.org 参考它就没错
      

  3.   

    To nighthawk,老兄,能说得具体些么?Apache网站上的相关资料我都查阅了好多,并没有得到答案,还在相关的论坛上提出了一些问题呢
      

  4.   

    1,在你站点的context文件里面加上属性 reloadable="true" ,当tomcat后台线程发现有类文件被更新了就会自动加载对应的整个应用。2,断网就异常,希望能给出详细的异常信息。这样才好判断究竟是tomcat的错,还是应用程序的错。
      

  5.   

    感谢 foxty(狐狸糊涂) ,你的方法我正在测试断网异常会出现各种各类的情况,比如Tomcat不能访问,控制器不能访问(登陆不进去),,,等等...
      

  6.   

    用的是安装版,说准确点,应该是每次断网时,Tomcat也挂掉了,就是说Tomcat里的站点不能访问
      

  7.   

    To laixiaonian(蓝色雨),因为是内网,所以数据库和WEB程序都放在一个内网服务器上To firehill1983(希望成长),网站放在Root目录下,请问怎么加 reloadable="true"
      

  8.   

    在节点定义文件里面加上一个属性 reloadable="true"就可以了这个文件可能在server.xml或%CATALINA_HOME%/conf/Catalinia/localhost/yourApp.xml中间。
      

  9.   

    疑问一:Tomcat怎么设置才能自动加载上传的.class类文件?
      这是可以的, 但是一般不要这样做. 以前的旧版本会出现加载不完全, 不知道现在解决没有. 还是在网页上, 通过tomcat的管理界面重新启动吧.疑问二:Tomcat为什么一断网就出现故障,也就是网站访问异常?
      出现异常是正常情况, 如果一个请求正在处理, 忽然网络中断. 从Socket层面就已经抛出错误了. 
      还有可能出现错误后你的程序没有关闭创建的资源, 再使用时可能会造成混乱
      使用VPN和使用网线连接系统, 对于软件应用层面没有本质的不同有关问题三:本人在用Tomcat5.5.16作测试服务器时,新建了两个站点,分别用8080和9090指向,
      Tomcat的一般会向下兼容的, 具体的不好说, 也许是配置, 也许是程序, 得看看异常提示, 跟踪到异常出错的地方. 
      Tomcat和httpd的整合很好, 只要配置得当, 一些高级服务器才有的功能也能在此实现
      

  10.   

    http://www.apache.org
    上这儿查查吧,顶一下!
      

  11.   

    To TinyJimmy(Jimmy) 
    有关问题三,报错的是不能识别控制器疑问一,有没有更好的解决办法,Jboss可以自动加载吗? Weblogic是可以的,好像Resin也行,不过在对一个新的JSP容器没深入了解之前,是不能随便更换的
    To foxty(狐狸糊涂) 
    哥们,俺的网站放在Root目录中,也就是Tomcat的根目录中,这在Tomcat是没有<Context..../>这东东的,所以也不知道应该在哪里加  reloadable="true"
    当然,我可以像多端口应用一样,将网站从根目录中移到外部来,不过对于日访问量超过1WIP的网站来说,这样移不太现实,郁闷中...
      

  12.   

    自动重新加载类效率很低,一般重新加载某个context是可以的.
    如果需要自动重新加载类而不停止程序的话,需要重新定义类加载方式
      

  13.   

    To treeroot(旗鲁特)前辈,,能详细一些吗?
      

  14.   

    实际用的系统一般不要动态加载class,动态加载class一般都是测试服务器用在需要频繁修改class时候才用的具体问题你在这里搜一般都能得到结果,因为你遇到别人也会遇到的
      

  15.   

    貌似偶每次修改CLASS的时候都是重启的服务器,动态加载看似很方便,但是它加大了服务器的负担,所以还是自己手动改吧
      

  16.   

    可以从图形界面设置reloadable=true,不过如cross0661(Cross)所说,这样加大tomcat和jvm的负担。目前重启tomcat是可靠的办法。
    http://blog.csdn.net/cm4ever/archive/2004/10/05/125201.aspx想要只重载某几个类和文件的办法可以看我的文章,但是目前我又碰到了瓶颈,目前只在jsp中能够认出重载后的类,servlet中不行,也就是说struts的action或者其他第三方的servlet扩展都不行,由于没有人帮忙,所以进展很慢。
    http://blog.csdn.net/cm4ever/archive/2006/03/06/616782.aspx
      

  17.   

    非常感谢 cm4ever(单细胞生物,亩产三万斤) 你的Blog我正在阅读,希望大家一起来讨论,希望有更好的解决办法...
      

  18.   

    说一下问题一的一个方便解决方法:
    就是TOMCAT里面有管理页面:manager
    http://127.0.0.1:8080/manager/list   列出所有的运行的Context
    http://127.0.0.1:8080/manager/reload?path=/jj  重新启动/jj的Context
      

  19.   

    点STARTUP.BAT启动TOMCAT,然后在网页上输入http://127.0.0.1:8080
    就可以了
      

  20.   

    我已经找到了servlet和jsp不能识别的原因。
    写完了一部分,正准备放到sourceforge.net
      

  21.   

    第一个问题:
        我记得我在使用Tomcat4的时候,在server.xml中配<Context path="" docBase="ROOT" debug="0">是很必要的,但是到了Tomcat5以后就可以不配了~
        ·在Tomcat5中 配与不配
        比如:我有一个目录MyBBS在webapps中,如果我不配置用 http://localhost/MyBBS来访问
        如果我配置为:<Context path="/bbs" docBase="MyBBS" reloadable="true" debug="0"/>
    则可用 http://localhost/bbs 来访问。但是配置的话可以可以加上:reloadable="true"来自动加载class文件
        ·必须重启
        如果在classes文件新增servelt、filter等关系到web.xml配置的就必须重启!
      

  22.   

    第二个问题:
        偶感觉是跟VPN有关系
      

  23.   

    To cm4ever(单细胞生物,亩产三万斤)servlet和jsp不能识别类才是最重要的一个问题,希望答案放上去之后,在这里贴一个链接,谢谢!其实,我们在上传Class的时候,会发现它有一个临时的Record文件,不知道与这东东有否关系
      

  24.   

    你这个Record文件可能是上传系统造成的,本机复制你不会看到这个文件。jsp和servlet不能识别是因为tomcat会一直使用第1次创建的jsp/servlet实例,因此需要先把它设置为null。让他重新创建实例就ok。需要调用tomcat的api。我已经申请了项目,但sourceforge告诉我需要2~3周的时间。呵呵。
      

  25.   

    Muchli() ( ) 信誉:100  2006-4-18 12:18:56  得分: 0  
     
     
       
    说一下问题一的一个方便解决方法:
    就是TOMCAT里面有管理页面:manager
    http://127.0.0.1:8080/manager/list   列出所有的运行的Context
    http://127.0.0.1:8080/manager/reload?path=/jj  重新启动/jj的Context  
     
    ----我也正想说这个,我一直这么做的。
      

  26.   

    问题一: Tomcat 5.0\conf\server.xml  
    <Host name="localhost" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
    <Logger className="org.apache.catalina.logger.FileLogger" directory="logs" prefix="localhost_log." suffix=".txt" timestamp="true"/>
    <Context path="/" docBase="/Dolphin" debug="0" reloadable="true" crossContext="true"/>
    </Host>path="/"  :http://127.0.0.1:8080/  http访问路径
    reloadable="true" : 自动加载自动加载(新类)和更新(同名类)上传的文件,不需要重启tomcat我的tomcat是5.0.28版
      

  27.   

    问题三
    tomcat5.5*版本支持jdk1.5,但有部分版本和以前的差异很大,个人使用过感觉不好,还是5.0*用的顺手,用了2年多了
      

  28.   

    <Context className="org.apache.catalina.core.StandardContext" cachingAllowed="true" 
    charsetMapperClass="org.apache.catalina.util.CharsetMapper" cookies="true" crossContext="false" 
    debug="0" displayName="ntu" docBase="D:\soft\eclipse3.1.2\workspace\ntu\web"
    mapperClass="org.apache.catalina.core.StandardContextMapper" path="/ntu" 
    privileged="false" reloadable="false" swallowOutput="false" useNaming="true" 
    wrapperClass="org.apache.catalina.core.StandardWrapper"/>类似这样配置更改类文件是不需要重启的,除非你修改了xml配置文件,我修改好 struts的action后不要重启容器,直接运行就ok,节省了N多时间tomcat建议还是使用5.0.28这个一直很稳定,其它有好多版本是beta版的
      

  29.   

    hackangcn(龙卷风),我用了你这个配置,没有效果。
    说实在的,我阅读了tomcat的源码,没看到有动态重载功能。
    而且他的WebappClassLoader.findClass方法还有不能对同一个类使用2次的bug.
      

  30.   

    关注。以前我遇到的项目tomcat4*中也存在这样的问题,每次发布新的class都需要重新启动tomcat,自动加载也一直没有成功。
      

  31.   

    非常感谢 cm4ever(单细胞生物,亩产三万斤) 长期关注本贴, 也希望能有更多的前辈们参与讨论
      

  32.   

    必须重启
        如果在classes文件新增servelt、filter等关系到web.xml配置的就必须重启!
      

  33.   

    配置一下tomcat下的server.xml的context将reloadable设置为true
      

  34.   

    Tomcat资源管理器模块发布--动态重载资源
    http://community.csdn.net/Expert/TopicView3.asp?id=4716234放出模块的第一个可用版本。
      

  35.   

    我的是配置的好的啊,建议你server.xml里面把其他的context删除,然后tomcat换5.0.28看看我帮好多机器配置过,修改java文件不需要重启,直接调试,难道我还骗你不成
      

  36.   

    hackangcn(龙卷风)
    不知道你有没有用过hibernate,步骤如下:1.reloadable=true
    2.使用static方式或者一个设置为loadOnStartup的servlet,启动hibernate.3.你会在tomcat启动时看到hibernate的输出信息。
    4.接着修改一个WEB-INF/classes或者/WEB-INF/lib目录下文件。稍等,现在会看到hibernate的输出信息又出现了。这就是因为tomcat重载了整个webapp,而不是只重载了我们修改过的类。
    如果使用Spring,也会看到这种信息。
      

  37.   

    最好是重启下 设置成自动reload太费资源了
      

  38.   

    1、reloadable="true"2、弄个在线测试一直连接它看看
      

  39.   

    reloadable="true" 很耗服务器资源,记得Eclipse能够自动将修改的文件部署到Tomcat服务器上,不知道这种机制是怎么实现的?
      

  40.   

    楼主好像很谦虚
    疑问一:大家已经告诉你答案了
    疑问二:我感觉和vpn有关.
      

  41.   

    tomcat不支持热部署,不象jboss,要想不在后台重启tomcat的话最好的办法就是进去tomcat的admin管理界面,对web服务进行reload
      

  42.   

    哈哈,本来想杀三百分的,可是……,唉,很感谢各位前辈的回答!Tomcat访问异常的问题被解决了,是数据库的原因,上次查了二个小时,终于找出这根源,不过服务器上的Tomcat好像很不稳定,页面重载都是了错,用的5.59,不知道是不是版本的原因
      

  43.   

    不过服务器上的Tomcat好像很不稳定,页面重载都是了错,用的5.59,不知道是不是版本的原因
    ====================================================================================
    有没有错误信息 帖出来啊 呵呵
      

  44.   

    To OnlyFor_love(『清水出芙蓉 天然去雕饰』) 页面还是执行,不报什么错误,但是会丢失部分内容,需要进服务器,删掉work下的相应文件才奏效,郁闷至死!!
      

  45.   

    我想问一下tomcat服务器里面把一个项目的reload功能开启之后,是不是对应目录下所有的文件(class,jsp,properties,xml...)添加修改都不用重启服务器?