我有一个使用 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
选项,它永远不会工作,我不知道为什么不。我不断收到错误对话框标题服务器错误,并显示消息选择无法在任何服务器上运行。我已经配置了 Tomcat 7 Eclipse中合法的服务器运行时;我可以使用这个运行时没有任何问题,我的其他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项目中的期望相冲突?提前谢谢。
答案 0 :(得分: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提交错误了......