【问题标题】:Find Implementation of javax.servlet-api (ServletContainerInitializer and ServletContext)查找 javax.servlet-api 的实现(ServletContainerInitializer 和 ServletContext)
【发布时间】:2016-07-19 14:19:48
【问题描述】:

ServletContainerInitializerServletContextjavax.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.servletjavax.servlet-api-3.0.1.jar 中。另一个位于javax.servlettomcat-embed-core-7.0.53.jar 中。两者具有相同的包名!在spring-web-4.1.2.RELEASE.pom 中,我可以看到javax.servletjavax.servlet-api3.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


【解决方案1】:

从项目的根目录执行 maven 目标 mvn dependency:sources。它将下载您项目依赖项的所有可用源

【讨论】:

  • 我猜这更像是一个日食问题。我有 servlet-api 和 spring-web 的来源。 Eclipse 找不到接口ServletContainerInitializer 的实现SpringServletContainerInitializer
猜你喜欢
  • 1970-01-01
  • 2015-05-15
  • 1970-01-01
  • 2015-11-22
  • 2012-06-02
  • 1970-01-01
  • 2016-07-24
  • 1970-01-01
  • 2010-10-15
相关资源
最近更新 更多