Struts1.x、Struts2、Spring2.0、Spring2.5同放在Tomcat6下冲突

三个工程用了两套SSH,一个工程A是Struts1.2+Spring2.0,两个工程B、C是Struts2+Spring2.5。同时放在Tomcat6下。
A和B、A和C可以共存,但ABC放在一起,B和C总有一个无法运行。

检查问题出在哪里。

在Tomcat启动的情况下,把启动过的B工程删除,发现struts core的jar无法删除。猜想可能是Tomcat在使用了一个struts core后就一直在内存中持有这个jar的资源,不会再使用其他工程的struts core。

我把B和C工程的struts jar包拷到Tomcat根目录下的lib目录中,提示找不到Spring的资源,于是把Spring的资源也放在lib目录下,B和C可以运行了,但A报错。
在这里有一点也许不是通用的,A工程使用了动态FormBean,在创建动态FormBean时,提示找不到DynaActionForm类。为了解决这一个问题,我把A工程的jar也拷到了lib目录下,在拷的过程中解决了包的冲突问题。
这时又出问题了,工程A又了有错误提示,意思是找不到自己定义的类。
于是把工程A的所有类导出成jar包,放在Tomcat的lib下,把工程中的.class文件全部删除。
这时就可以了。

看来Tomcat的运行机制有待提升,或者我们对它了解还不够,需要更进一步探索。

你可能感兴趣的:(spring,tomcat,c,struts,ssh)