HTTP状态500 – servlet fitTrackerServlet的Servlet.init()引发exception
这是我第一次使用Spring,我正在关注PluralSight的教程。 运行第一个示例,我遇到标题中列出的错误。 在我的控制台中,我收到这样的错误。 我正在使用旧版本的依赖项来完成本课程。 我已经确保密切关注这个教程,所以不确定我是否搞砸了某个地方或某些东西被弃用了。 我正在使用http:// localhost:8080 / FitnessTracker / greeting.html
SEVERE: Context initialization failed java.lang.IllegalArgumentException SEVERE: StandardWrapper.Throwable java.lang.IllegalArgumentException SEVERE: Allocate exception for servlet fitTrackerServlet java.lang.IllegalArgumentException
HelloController.java
package com.pluralsight.controller; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; @Controller public class HelloController { @RequestMapping(value = "/greeting") public String sayHello(Model model) { model.addAttribute("greeting", "Hello World"); return "hello"; } }
的servlet-config.xml中
为hello.jsp
Insert title here ${greeting}
web.xml中
fitTrackerServlet org.springframework.web.servlet.DispatcherServlet contextConfigLocation /WEB-INF/config/servlet-config.xml fitTrackerServlet *.html Archetype Created Web Application
的pom.xml
4.0.0 com.pluralsight FitnessTracker war 0.0.1-SNAPSHOT FitnessTracker Maven Webapp http://maven.apache.org junit junit 3.8.1 test org.springframework spring-webmvc 3.2.0.RELEASE javax.servlet servlet-api 2.5 provided javax.servlet jstl 1.2 provided FitnessTracker
我在同一个PluralSight教程中遇到了同样的问题。 我安装了Java 1.7和Java 1.8。 该项目显然引发了Java 1.8的exception。 要纠正这种情况,您需要确保将Spring STS环境设置为使用Java 1.7。
- 右键单击项目,然后选择“ 属性” 。
- 在“ 属性”对话框中,选择“ Java编译器” 。
- 在对话框的底部,选择用于配置已安装JRE的链接。
- 添加定义以指向JRE 1.7并选择此作为默认值。
PluralSight教程现在适合我。 我自己是Java和Spring MVC的初学者,所以我不确定这是否是解决问题的最佳方法。
那么,spring 3.2需要java 7或更早版本。 另一个解决方案是将pom.xml中的spring mvc的版本号更改为4.2.4.RELEASE而不是之前使用的3.2.0.RELEASE,而不是更改项目属性。 现在,您可以正常使用java 8。
下面,我展示了整个pom.xml,只有我上面提到的更改。
4.0.0 com.pluralsight FitnessTracker war 0.0.1-SNAPSHOT FitnessTracker Maven Webapp http://maven.apache.org junit junit 3.8.1 test javax.servlet jstl 1.2 provided javax.servlet servlet-api 2.5 provided org.springframework spring-webmvc 4.2.4.RELEASE FitnessTracker
试试4.1.5。 这个对我有用。
org.springframework spring-webmvc 4.1.5.RELEASE
org.springframework spring-webmvc 3.2.3.RELEASE org.springframework spring-jdbc 3.2.3.RELEASE org.springframework spring-orm 3.2.3.RELEASE
尝试使用3.2.3.RELEASE版本,只要你有基于spring的依赖
我遇到了同样的问题。 所以你要做的就是使用Tomcat v7.0,因为我使用的是Tomcat v9.0,它不适用于JRE7而是JRE8 。 所以
- 使用Tomcat v7.0设置应用程序,并使用JRE7设置STS或Eclipse默认构建路径。
- 重新启动Tomcat服务器。
- 转到您的浏览器并粘贴上面的链接,在这里你去! 🙂
要解决此问题,只需将servlet容器的运行时环境更改为Java 7.在Eclipse中:
- 首选项 – >服务器 – >运行时环境
- 选择您正在运行项目的服务器,然后单击编辑....
- 从
JRE
部分,选择Java 7 JRE。 请注意,为了能够执行此操作,首先需要下载并安装Java 7,并在Eclipse中提供Java 7 JRE。 要在Eclipse中使Java 7 JRE可用:- 下载Java 7并安装它。
- 在Eclipse中,选择Preferences – > Java – > Installed JREs,然后单击Search .... 如果已将Java 7安装到其默认路径,则Eclipse应该能够自动发现Java 7。
- 将Java 7添加到Eclipse后,可以选择JRE 7作为servlet容器的运行时环境。
我还建议指出服务器名称中使用的运行时环境。 例如,在Eclipse中,不要让服务器名称只是“Apache Tomcat v7.0”,而是将其设为“Apache Tomcat v7.0 – JRE 7”。 当然,如果稍后更改此服务器的运行时环境,则应更新此名称。
资料来源: http : //www.codejava.net/ides/eclipse/how-to-change-java-runtime-environment-for-tomcat-in-eclipse
注意:此答案也适用于任何其他IDE。 您只需要确保您的servlet容器在JRE 7下运行。