【发布时间】:2016-07-19 14:19:48
【问题描述】:
ServletContainerInitializer 和 ServletContext 是 javax.servlet-api-3.0.1.jar. 的一部分
1)
我知道SpringServletContainerInitializer 实现了ServletContainerInitializer。 servlet api jar 和 spring-web jar 都是 maven 依赖项的一部分,显示在项目的 maven 依赖项下。
当我在界面上执行CTRL+T 时,它没有显示实现。如何让eclipse显示出来?
2) i) 如何让 eclipse 了解 Tomcat 源代码(参考就足够了)并查看 ServletContext 的实现?
ii) 你能否也指向我可以搜索接口实现的 tomcat 站点?
谢谢
【问题讨论】:
-
当您使用 Ctrl+Shift+T 打开 ServletContainerInitializer 时,您是否看到多次出现?你具体打开的是哪一个? Spring 究竟将哪一个声明为依赖项?这些必须匹配才能出现在 Ctrl+T 中。
-
您的第二个问题在这里得到解答stackoverflow.com/q/35713815 以后,每个问题问一个问题,这样更容易策划问题。
-
@BalusC 我有 2 次出现。一个位于
javax.servlet的javax.servlet-api-3.0.1.jar中。另一个位于javax.servlet的tomcat-embed-core-7.0.53.jar中。两者具有相同的包名!在spring-web-4.1.2.RELEASE.pom中,我可以看到javax.servlet、javax.servlet-api、3.0.1的依赖关系。由于包冲突,Ctrl+T 找不到实现?似乎 Ctrl+T 不考虑依赖项细节。看起来构建路径是唯一的标准?在包冲突的情况下,它使用什么内部机制来查找接口的实现? -
Ctrl+T 应该对 javax.servlet-api 中的事件起作用(因为 Spring 将其用作依赖项)。
-
@BalusC 你能看一下截图吗?界面上的Ctrl+T不显示实现(可能是因为包冲突)?但至少实现上的 Ctrl+T 应该显示正确的接口(基于依赖)?我的主要兴趣是界面上的 Ctrl+T。
标签: eclipse spring maven servlets spring-tool-suite