您的位置:首页 > 理论基础 > 计算机网络

servlet程序HTTP Status 500 - Error instantiating servlet class 解决

2017-05-25 09:50 441 查看
今天帮同学搭个基本的web登录。应该没什么难题的,但是今天居然被这个500错误耽搁了好久。

看到这个错误,我

之前遇到过这个错误,就是web.xml文件中的<servlet-class>配错了,但是我记得我的包名写的对的,后面也没写.java。赶紧打开web.xml看一下。完全没错啊。我又重新检查了一遍,应该没差。重启服务器,重新来一次。

我真是fxxk the dog了。玛德,错误不变。开始各种百度,最后在查阅这一篇blog之后发现(http://blog.csdn.net/chuck_kui/article/details/54835874),发现是没有生成build/classes文件。

原文转载如下:

问题:

1.  tomcat在eclipse里面能正常启动,而在浏览器中访问http://localhost:8080/不能访问,且报404错误。同时其他项目页面也不能访问。

  关闭eclipse里面的tomcat,在tomcat安装目录下双击startup.bat手动启动tomcat服务器。访问htt://localhost:8080/能正常访问tomcat管理页面。


原因: eclipse将tomcat的项目发布目录(tomcat
目录中的webapp)重定向了,所以你会发现在tomcat安装目录下的webapp目录里面找不到你的项目文件。


解决方法

重新配置下tomcat服务器:

在eclipse中的server页面,双击tomcat服务,会看到如图所示的配置页面:





可以看到红圈中选择的是 Use workspace metadata(does not modify Tomcat installion)

如果该tomcat中部署了项目的话,这红圈中的选项会灰掉不能修改,要修改必须得先把tomcat中的部署的服务都移除。



通过右键单击tomcat服务器选择 Add and Remove,在弹出的对话框中移除已部署的项目。移除完确定后,将看到上面的选项面板部分可编辑了。若还是灰色的
,右键单击servlet 中的Tomcat



选择Use tomcat installation(Task control of Tomcat installation) 即选择tomcat的安装目录来作为项目的发布目录。

然后,下来四行,看到"Deploy Path"了没?它后面的值默认是"wtpwebapps",把它改成"webapps",也就是tomcat

中发布项目所在的文件夹名字。





修改后关掉该页面,保存配置。这样就将项目部署到了tomcat安装目录下的webapp

重启tomcat服务器,访问http://localhost:8080则能正常访问了,自己部署的项目也能正常访问了。

4000

2.  在eclipase 中编译 servlet  但是一致报 HTTP
Status 500 - Error instantiating servlet class XXX类 的问题 ,


解决方法

1. 在web.xml 中检测 <servlet><servlet-mapping> 有没有配置错误
2. 查看 项目的build\classes 下有没有 你的XXX.class 文件,或 tomcat的webapps
下 有没哟编译好的 XXX.class文件
3. servlet类同时在web.xml中配置并加上了@webservlet的注解,去掉其中之一即可
4. tomcat并没有成功部署项目,检查servlet是否初始化,即在init方法里输出日志或断点,看是否进入

5. 查看eclipse工具中的:Project->Build Automatically这个选项,是否勾选,如果没有勾选,选上的话,eclipse可以自动编译,编译后就会有class了



血的教训!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  JAVA WEB web.xml servlet
相关文章推荐