TOMCAT热部署问题。

月嗜江流 2013-11-04 06:02:27
系统是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 more

server.xml ,添加的数据为:

<Context path="/wsm" docBase="wsm" debug="99" reloadable="true"/>
<Context path="/axis2" docBase="axis2" debug="99" reloadable="true"/>
...全文
299 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
月嗜江流 2013-11-07
  • 打赏
  • 举报
回复
最终测试了一遍,发现是jar文件冲突问题引发的,各种郁闷。哎,发现问题,在集成Struts2时,如果发现有重复的包,或者其他问题,热部署出现问题,就是jar包问题了
  • 打赏
  • 举报
回复
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"为项目所在路径
sunbo624 2013-11-06
  • 打赏
  • 举报
回复
这就是Java碎片化严重导致的 互相没有约定 没办法
月嗜江流 2013-11-05
  • 打赏
  • 举报
回复
问题的关键是:数据库jar包,才用上传方式加载。然后使用DBPC连接池进行分配连接。原计划是使用URLClassLoader进行jar文件的外部加载。但是发现,在数据连接较大的情况下,会出现线程假死的状态,所以才考虑tomcat热部署这个方法。有没有什么好办法。解决下,求指导啊
nai598455803 2013-11-05
  • 打赏
  • 举报
回复
3大框架对热部署都有影响的,
teemai 2013-11-05
  • 打赏
  • 举报
回复
tomcat 这个毛病又不是一天两天了 文件多的时候,你修改了就不一定会自动重启 强烈建议不要依赖该配置参数来进行调试测试...
TT天天 2013-11-05
  • 打赏
  • 举报
回复
是啊。强制编译一下。
小丑哥_V5 2013-11-05
  • 打赏
  • 举报
回复
有时候tomcat的自动重启不靠谱的,还是得自己手动重启下更保险

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧