我对主题进行了搜索,但没有找到任何易于理解的内容……我们有一个 tomcat (v5.5)。上面部署了很多webapp。每个 webapp 都有 WEB-INF/lib 目录中的所有库。所以有很多重复。
为了组织一些常用方法,创建了一个经典库(XXX_API)。所以这个库被添加到每个 web 应用程序中进行编译但不与它们一起部署。该库部署在 Tomcat 的共享目录中。
我们尝试在公共库中使用 Spring 3.1.1 的 JdbcTemplate 集成一些 DAO。所以我们必须在共享目录中部署 Spring 库才能部署我们的 XXX_API。
现在,我们无法启动所有应用程序。其中一些因以下异常而崩溃:java.lang.IllegalArgumentException。org.springframework.jdbc.config.JdbcNamespaceHandler 类没有实现 NamespaceHandler 接口。有关信息,它们是使用 Spring 2.0.6 开发的 :(
问题似乎在 applicationContext.xml 中本地化。
所以,这是我的问题:
- Tomcat的共享目录如何工作?
- 与 web 应用程序的 lib 目录相比,它是否优先加载?
- 只是关于 applicationContext.xml 中声明的命名空间的 pb 吗?
- 是否可以同时拥有两个弹簧版本?
谢谢你。