servlet程序HTTP Status 500 - Error instantiating servlet class 解决(rootCause:ClassNotFound:xxxServlet)

查错步骤:
①重新写一遍。保证web.xml,servlet配置无错误。
②工具栏project》Build Automaticly必须要勾选上:eclipse才会自动编译你的代码。
===我就是 勾上了之后,错误变成了:NoSuchMethod(),最后找到问题原因是:BaseServlet的子类方法是protected。而反射cgetMethod()必须是public方法:
/*
	 Method getMethod(String name, Class<?>... parameterTypes) 
         	返回一个 Method 对象,
         	它反映此 Class 对象所表示的类或接口的指定【公共public】成员方法。==######=protected也不行!!! 
         	
         	===报错:===【NoSuchMethodException: base.Pro.add】
	 * */

====这个问题纠结了一晚上!


问题能够解决,得益于这篇博客:http://blog.csdn.net/chuck_kui/article/details/54835874
copy如下:(对于这种环境配置问题,是软肋。)

问题:

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则能正常访问了,自己部署的项目也能正常访问了。


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了

血的教训!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值