Eclipse Maven Spring:我尝试运行为服务器时出现服务器错误(Tomcat 7)

ecb*_*die 1 java eclipse spring tomcat maven

我有一个使用Spring MVC框架和Maven作为其构建系统的Java项目.我想使用的主要IDE是Eclipse for Java EE.我正在为我的应用程序使用标准的Maven项目结构:源代码在src/main/java,应用程序的资源在,src/main/resources以及与Web容器相关的代码src/main/webapp.在src/main/webapp/WEB-INF,我有一个web.xml用于配置我的服务器的文件和用于Spring相关文件的多个文件夹,例如上下文XML文件和视图.这些Spring文件在web.xml中合法链接.

当我尝试使用Maven-Tomcat7-Plugin(通过mvn tomcat7:run-war目标)运行项目时,我的项目成功启动,我能够查看我的网页,看到我的REST控制器在运行中没有问题.

但是,当我尝试在Eclipse中运行项目时,使用它的Run As Server选项,它永远不会工作,我不知道为什么不.我一直收到错误对话框标题服务器错误和消息选择无法在任何服务器上运行.我已经在Eclipse中合法配置了Tomcat 7服务器运行时; 我可以使用这个运行时没有任何问题,我的其他Java项目.我已经尝试过Google,Stackoverflow和博客建议的所有内容,以便在Eclipse服务器上运行Eclipse Maven Spring项目.我试图删除Eclipse项目,删除Eclipse工作区文件并重新导入项目(作为Maven项目和常规Java项目),但无济于事.我也尝试在Project Facets中启用动态Web模块并将Web目录设置为src/main/webapp,但也无济于事.

我很困惑; 我之前曾多次使用Eclipse中的Tomcat服务器,但它只是不适用于这个特定的Spring项目,即使它使用Maven在Tomcat上部署得很好.有谁知道可能出现什么问题?我忘记了一个故障排除步骤吗?我的项目设置是否有问题与Eclipse在Web Server项目中的期望相冲突?提前致谢.

ecb*_*die 8

我想我明白了.Eclipse的动态Web模块3.1版可能存在错误.我的项目是使用此版本导入的,因为我在我的pom.xml中使用了javax.servlet-api的3.1版本.当我将版本更改为3.0版时,我现在可以将其作为服务器运行.

基本上,为了做这个改变,我不得不进入.settings/org.eclipse.wst.common.project.facet.core.xml并改变<installed facet="jst.web" version="3.1"/>标签而不是<installed facet="jst.web" version="3.0"/>.

是时候用Eclipse提交bug了...