no_*_*mer 36 java eclipse servlets
我已经将一个Java动态Web项目导入Eclipse IDE(它在Eclipse IDE中实现并正常工作).
运行项目时,我收到" getDispatcherType()未定义类型HttpServletRequest"错误.
我已根据结构将每个文件复制到IDE中,并完成了工作.
现在我只想知道为什么在导入项目时出现此错误.有人遇到过同样的问题吗?请让我知道我可能犯了什么错误.
Jam*_*her 42
当我在IntelliJ中使用与我在Tomcat 8.0.x中支持的内容相冲突的servlet-api版本时,我遇到了同样的问题...我正在使用Maven,所以我只是改变了对它的依赖,然后做了一个干净部署我的webapp,问题就消失了.
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
zon*_*ond 14
tomcat 8.0.18,maven.这是关于lib的冲突.我的解决方案是:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>servlet-api</artifactId>
<version>2.5</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
变成:
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)
您应该从pom.xml中可能包含的任何其他依赖项中排除"servlet-api-2.5.jar".
尽量不要将不同的servlet-api添加为编译,因为tomcat已经为您提供了它.
我的步骤:
我已经检查过Maven中有一个servlet-api-2.5.jar包含在我的WEB-INF/lib文件夹中,所以我检查了"Maven projects @IntelliJ Idea"的完整依赖图,然后我排除了这个依赖来自它所在的所有地方.[按钮"显示依赖关系"对此很方便]
我不得不从速度工具中排除"commons-logging"(因为它有servlet-api 2.5依赖).还必须从jaxws-spring中排除servlet-api,它直接依赖于默认范围.
然后,只需在javax.servlet-api依赖项中添加您应该提供的范围.
如果你将servlet-api 3.0.1+添加为"compile",你可能最终得到两者,并且第一个加载将获胜,这根本不是好事.
注意: 我的猜测是这个问题来自于重命名servlet-api的groupId/artifactId,而不是用maven项目中包含的最旧版本覆盖.:\