servlet入门示例出错,提示"Error instantiating servlet class"

sunada2005 2014-01-15 02:02:57
大家好!我初学java的web开发,有些很基础的问题弄不通,还请大家指点。
我正在学servlet,在做一个入门示例时,就是访问不了正常的页面。不知道应该怎么解决这个问题。具体如下:
我是按这个页面:http://blog.csdn.net/wangdingqiaoit/article/details/7674367 来搭建环境了。我用的是myeclipse10, tomcat 7, jdk1.7。访问http://localhost:8080/FirstServlet/index.jsp文件没有问题,但访问http://localhost:8080/FirstServlet/servlet/Test这个页面时,提示:HTTP Status 500 - Error instantiating servlet class test.Test

具体错误为:
type Exception report
message Error instantiating servlet class test.Test
description The server encountered an internal error that prevented it from fulfilling this request.
exception
javax.servlet.ServletException: Error instantiating servlet class test.Test
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041) org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:243
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:241 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) java.lang.Thread.run(Thread.java:744)

root cause
java.lang.InstantiationException sun.reflect.InstantiationExceptionConstructorAccessorImpl.newInstance(InstantiationExceptionConstructorAccessorImpl.java:48)
java.lang.reflect.Constructor.newInstance(Constructor.java:526)
java.lang.Class.newInstance(Class.java:374) org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502) org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603) org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2430
org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2419
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
java.lang.Thread.run(Thread.java:744)


note The full stack trace of the root cause is available in the Apache Tomcat/7.0.47 logs.

...全文
53054 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
YYCHEN_jd 2016-08-02
  • 打赏
  • 举报
回复
我也出现了: javax.servlet.ServletException: Error instantiating servlet class myServlet ........ 验证结果: 我的myServlet写在servlet.httpServlet包下 web.xml: 一开始我是这样写的: <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>myServlet</servlet-class> </servlet> 于是报错。。。。 后来改成这样就行了: <servlet> <servlet-name>myServlet</servlet-name> <servlet-class>servlet.httpServlet.myServlet</servlet-class> </servlet>
繁花似锦_13 2016-01-15
  • 打赏
  • 举报
回复
我遇到这样的错,是因为,没有在工程的WEB-INF目录中,没有生成classes,会报这样的错误。解决方法:project->properties->java build path->source->src,将Default output folder设置为[项目名]/WebRoot/WEB-INF/classes,点击OK。
qq_25604643 2015-05-17
  • 打赏
  • 举报
回复
在<servlet-class></servlet-class>里packagename.classname要写正确
qq_22974727 2014-11-05
  • 打赏
  • 举报
回复
我验证了一下,应该是配置Servlet出的问题。。。估计在<servlet-class>xx.xx.xxx.java</servlet-class> 多了个java或者class,写太快的话
baidu_19761645 2014-08-19
  • 打赏
  • 举报
回复
引用 5 楼 zlgkaixin68 的回复:
[quote=引用 4 楼 u012624384 的回复:] 错在哪啊?楼主 求告知。。
经验证,没有把servlet对应xxx.class文件 放在WEB-INF的classes目录里,会报这样的错误。[/quote] 怎么写?
axiaoming 2014-07-17
  • 打赏
  • 举报
回复
信息: Deployment of web application directory D:\apache-tomcat-7.0.54\webapps\web06_2 has finished in 284 ms 七月 17, 2014 8:49:31 下午 org.apache.catalina.core.ApplicationContext log 信息: Marking servlet SomeServlet as unavailable 七月 17, 2014 8:49:32 下午 org.apache.catalina.core.StandardWrapperValve invoke 严重: Allocate exception for servlet SomeServlet java.lang.ClassNotFoundException: SomeServlet at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1720) at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571) at org.apache.catalina.core.DefaultInstanceManager.loadClass(DefaultInstanceManager.java:529) at org.apache.catalina.core.DefaultInstanceManager.loadClassMaybePrivileged(DefaultInstanceManager.java:511) at org.apache.catalina.core.DefaultInstanceManager.newInstance(DefaultInstanceManager.java:139) at org.apache.catalina.core.StandardWrapper.loadServlet(StandardWrapper.java:1148) at org.apache.catalina.core.StandardWrapper.allocate(StandardWrapper.java:864) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:134) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1040) at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2442) at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2431) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) at java.lang.Thread.run(Thread.java:745) 关键是要将SomeServlet放在一个包里:package
axiaoming 2014-07-17
  • 打赏
  • 举报
回复
我也出了个这样的错误,关键是要把写的Servlet类放到package中
Panda_熊猫 2014-06-30
  • 打赏
  • 举报
回复
引用 4 楼 u012624384 的回复:
错在哪啊?楼主 求告知。。
经验证,没有把servlet对应xxx.class文件 放在WEB-INF的classes目录里,会报这样的错误。
boombaya 2014-04-08
  • 打赏
  • 举报
回复
错在哪啊?楼主 求告知。。
sunada2005 2014-01-15
  • 打赏
  • 举报
回复
自己又按示例再建了一个新的web project,发现没有问题了。想可能是由于之前什么地方配置错了吧。
姜小白- 2014-01-15
  • 打赏
  • 举报
回复
楼主把你的servlet类贴出来看看,看看问题,500代码出错了
姜小白- 2014-01-15
  • 打赏
  • 举报
回复
谢谢楼主分享

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧