我有一个需要在我的类路径中包含servlet-api.jar的 Java 解决方案。
如果我将servlet-api.jar从我的 tomcat 文件夹复制到项目文件夹,它会起作用。但是当我升级到 Java7 时,servlet-api.jar是一个新版本,需要更换。
无论如何我可以解决这个问题吗?我不认为我可以将它直接指向我本地开发机器上的 tomcat 文件夹......
问题不在于选择 Java 7 还是选择另一个版本的 JDK。问题是:你想在你的 webapp 中使用哪个版本的 servlet API 规范。当然,这种选择也会对您可以使用的 servlet 容器产生影响。例如,如果您选择 servlet 3.0,则必须使用 Tomcat 7,而不是 Tomcat 6。
因此,首先选择您要使用的 API 版本(以及容器),然后将相应的 jar 添加到您的项目中,并在您的类路径中使用此 jar 进行构建。只需确保不要将此 jar 文件添加到已部署的 webapp 的 WEB-INF/lib 文件夹中。jar 只能用于编译。在运行时,容器已经在它自己的类路径中有这个 jar。
我不喜欢有 servlet api jar 来满足 ant build。比如说,我们从 Tomcat 6.0.42 迁移到 6.0.43 或 7.xx 或 Glassfish。有人必须确保从 tomcat 安装中获取最新的 jar 并在项目中替换它。
重命名servlet-api.jar
为servlet-api-tomcat-6.0.42.jar
可能是一种解决方案。它还可能向开发人员表明,当我们更改 Web 容器时必须更换它。有更清洁的解决方案吗?