系统是struts2,没有集成hirbernate与Spring。
修改tomcat的server.xml文件后,将Context属性修改为热部署模式。启动后,系统正常,没有任何问题,
但是,只要修改了任何.java文件,系统就会出现下面这个异常:
严重: Exception starting filter struts2
Unable to load configuration. - [unknown location]
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:431)
at org.apache.struts2.dispatcher.FilterDispatcher.init(FilterDispatcher.java:190)
at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:275)
at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:397)
at org.apache.catalina.core.ApplicationFilterConfig.<init>(ApplicationFilterConfig.java:108)
at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:3709)
at org.apache.catalina.core.StandardContext.start(StandardContext.java:4363)
at org.apache.catalina.core.StandardContext.reload(StandardContext.java:3099)
at org.apache.catalina.loader.WebappLoader.backgroundProcess(WebappLoader.java:404)
at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1309)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1601)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1610)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1590)
at java.lang.Thread.run(Thread.java:662)
Caused by: Unable to load configuration. - [unknown location]
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:58)
at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:374)
at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:418)
... 14 more
Caused by: Caught exception while loading file struts-default.xml - [unknown location]
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:902)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadDocuments(XmlConfigurationProvider.java:143)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.init(XmlConfigurationProvider.java:110)
at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:168)
at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:55)
... 16 more
Caused by: java.lang.ClassCastException: org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration
at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
at org.apache.xerces.parsers.DOMParser.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderImpl.<init>(Unknown Source)
at org.apache.xerces.jaxp.DocumentBuilderFactoryImpl.newDocumentBuilder(Unknown Source)
at com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.createDocument(SAX2DOM.java:324)
at com.sun.org.apache.xalan.internal.xsltc.trax.SAX2DOM.<init>(SAX2DOM.java:84)
at com.sun.org.apache.xalan.internal.xsltc.runtime.output.TransletOutputHandlerFactory.getSerializationHandler(TransletOutputHandlerFactory.java:187)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerImpl.getOutputHandler(TransformerImpl.java:392)
at com.sun.org.apache.xalan.internal.xsltc.trax.TransformerHandlerImpl.setResult(TransformerHandlerImpl.java:137)
at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.setup(DomHelper.java:205)
at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:190)
at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:181)
at com.opensymphony.xwork2.util.DomHelper$DOMBuilder.<init>(DomHelper.java:167)
at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:107)
at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadConfigurationFiles(XmlConfigurationProvider.java:893)
... 20 moreserver.xml ,添加的数据为:<Context path="/wsm"   docBase="wsm"    debug="99"  reloadable="true"/>
<Context path="/axis2" docBase="axis2"  debug="99"  reloadable="true"/>
tomcat 热部署问题struts2

解决方案 »

  1.   

    有时候tomcat的自动重启不靠谱的,还是得自己手动重启下更保险
      

  2.   

    tomcat 这个毛病又不是一天两天了文件多的时候,你修改了就不一定会自动重启强烈建议不要依赖该配置参数来进行调试测试...  
      

  3.   

    问题的关键是:数据库jar包,才用上传方式加载。然后使用DBPC连接池进行分配连接。原计划是使用URLClassLoader进行jar文件的外部加载。但是发现,在数据连接较大的情况下,会出现线程假死的状态,所以才考虑tomcat热部署这个方法。有没有什么好办法。解决下,求指导啊
      

  4.   

    Tomcat下的工程热部署分为如下四步:
    1.在tomcat安装目路的conf目录下创建Catalina目录,当前目录为:C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf
    2.在Catalina目录下创建localhost目录,当前目录为:C:\Program Files\Apache Software Foundation\Tomcat 6.0\conf\Catalina
    3.在localhost目录下创建项目的热部署配置文件,如果ssh.xml。
    4.项目的热部署配置文件ssh.xml内容如下:
    <Context path="/ssh" docBase="E:\workspace\ssh\WebRoot" debug="0" reloadable="true">
    </Context>注意:
    path="/ssh",项目发布时的名字,这个名字必须与热部署配置文件名一致。
    docBase="E:\workspace\ssh\WebRoot"为项目所在路径
      

  5.   

    这就是Java碎片化严重导致的  互相没有约定  没办法
      

  6.   

    最终测试了一遍,发现是jar文件冲突问题引发的,各种郁闷。哎,发现问题,在集成Struts2时,如果发现有重复的包,或者其他问题,热部署出现问题,就是jar包问题了