为什么编译 helloword.java 这个 Servlet 时会出现如下错误?
helloword.java: (Tomcat 自带的例子)
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class HelloWorld extends HttpServlet {
public void doGet(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException
{
response.setContentType("text/html");
PrintWriter out = response.getWriter();
out.println("<html>");
out.println("<body>");
out.println("<head>");
out.println("<title>Hello World!</title>");
out.println("</head>");
out.println("<body>");
out.println("<h1>Hello World!</h1>");
out.println("</body>");
out.println("</html>");
}
}
错误信息:
type Exception report
message Internal Server Error
description The server encountered an internal error (Internal Server Error) that prevented it from fulfilling this request.
exception
java.lang.NullPointerException
at org.apache.jsp.showBookList$jsp._jspService(showBookList$jsp.java:316)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:107)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.jasper.servlet.JspServlet$JspServletWrapper.service(JspServlet.java:201)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:381)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:473)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:247)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:243)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:190)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.CertificatesValve.invoke(CertificatesValve.java:246)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2347)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:170)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:468)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:564)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:174)
at org.apache.catalina.core.StandardPipeline.invokeNext(StandardPipeline.java:566)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:472)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:943)
at org.apache.catalina.connector.http.HttpProcessor.process(HttpProcessor.java:1027)
at org.apache.catalina.connector.http.HttpProcessor.run(HttpProcessor.java:1125)
at java.lang.Thread.run(Thread.java:534)
我的环境变量设置为:
JAVA_HOME : E:\j2sdk1.4.2
TOMCAT_HOME : E:\TOMCAT
CLASSPATH : E:\j2sdk1.4.2\jre\lib\rt.jar;.;
PATH : E:\j2sdk1.4.2\Bin
非常感谢!
问题点数:0、回复次数:12Top
1 楼lizzz(不是程序员)回复于 2005-01-03 09:06:54 得分 0
org.apache.jsp.showBookList$jsp._jspService(showBookList$jsp.java:316)
应当是showBookList.jsp有问题,而不是helloworld.java.
Top
2 楼kidman521(我说美丽的意义是永久珍藏,你说美丽的意义是从此遗忘~~~)回复于 2005-01-03 09:16:03 得分 0
把你web-inf/classes其他的文件先移开,编译的时候会去编译全部的,即使你没有用到的,所以如果别的文件有错也会报错无法通过编译的~~~Top
3 楼lizzz(不是程序员)回复于 2005-01-03 09:30:49 得分 0
上面的错误应当是运行错误,我就不明白,如果你单运行Helloworld,怎么会调用到showBookList.jsp呢?Top
4 楼cocoismywife(cocoismywife)回复于 2005-01-03 10:58:00 得分 0
文件名出错了,不能是helloword.java要是HelloWorld.java
java区分大小写Top
5 楼ecaol(大家先别冲动,此事还须从长计议。)回复于 2005-01-03 12:46:52 得分 0
服务器内部错误Top
6 楼joyaga(joyaga)回复于 2005-01-03 12:58:02 得分 0
这是你编译HelloWorld 时候出现的问题么? 一定是servlet没配好 或是.jsp页面有问题
Top
7 楼Visual_studio(honghong)回复于 2005-01-03 13:14:20 得分 0
你的tomcat是哪个版本的Top
8 楼Visual_studio(honghong)回复于 2005-01-03 13:18:29 得分 0
试试用tomcat5.0,不用配环境变量的,只要把你的servlet写好后,按J2EE的标准结构放到tomcat的webapp下就可以了Top
9 楼redex(cc)回复于 2005-01-03 14:51:03 得分 0
文件名不对,另外,给servlet加个名字空间比较好.Top
10 楼yeno(人在广州)回复于 2005-01-03 15:10:04 得分 0
server源要放在Tomcat目录下编译,否则无法通过,请将源文件拷贝到Tomcat目录下的“站点/WEB-INF/”里面编译Top
11 楼dlxu(脱离纯粹Coding阶段)回复于 2005-01-03 17:38:35 得分 0
你为什么要访问JSP页面呢,好像没有必要啊Top
12 楼jackwin(想过更好的生活!!)回复于 2005-01-03 19:15:47 得分 0
out.close();Top




