我初学servlet,按照书上的例子写了个小程序,但是不论怎么样也是运行不了,tomcat报错:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.我的程序是这样的:1.在 \Tomcat 5.0\webapps 目录下创建 myapp 文件夹,里面新建了 WEB-INF\classes\test 文件夹
2.写了一个firstServlet.java,之后编译成.class,放置在 \Tomcat 5.0\webapps\myapp\WEB-INF\classes\test 目录下
3.写了一个web.xml文档,放在 \Tomcat 5.0\webapps\myapp\WEB-INF 目录下web.xml的内容如下:<web-app>
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>test.firstservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>
</web-app>firstServlet.class的源码如下:import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class firstServlet extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
{
//设置mime
response.setContentType("text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.println("<HTML> <BODY>");
out.println("这是一个简单的servlet。");
out.println("客户端IP地址是:"+request.getRemoteAddr()+"<br>");
out.println("</body> </html>");
}
}按照上述部署后重启tomcat,在浏览器输入
http://localhost:8080/myapp/firstServlet
显示说servlet出错,我弄了两天,还是搞不清楚,郁闷死了,希望大虾们指点一下...万分感谢!另:我用jbuilder来写servlet,在jbuilder的内部环境调试成功,可以很好运行,但是将程序转移到tomcat的webapp下运行也是出现这个错误,是不是我的tomcat配置出了问题啊???如果是的话可能会是哪里出问题啊?谢谢~`
2.写了一个firstServlet.java,之后编译成.class,放置在 \Tomcat 5.0\webapps\myapp\WEB-INF\classes\test 目录下
3.写了一个web.xml文档,放在 \Tomcat 5.0\webapps\myapp\WEB-INF 目录下web.xml的内容如下:<web-app>
<servlet>
<servlet-name>firstServlet</servlet-name>
<servlet-class>test.firstservlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>firstServlet</servlet-name>
<url-pattern>/firstServlet</url-pattern>
</servlet-mapping>
</web-app>firstServlet.class的源码如下:import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class firstServlet extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
{
//设置mime
response.setContentType("text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.println("<HTML> <BODY>");
out.println("这是一个简单的servlet。");
out.println("客户端IP地址是:"+request.getRemoteAddr()+"<br>");
out.println("</body> </html>");
}
}按照上述部署后重启tomcat,在浏览器输入
http://localhost:8080/myapp/firstServlet
显示说servlet出错,我弄了两天,还是搞不清楚,郁闷死了,希望大虾们指点一下...万分感谢!另:我用jbuilder来写servlet,在jbuilder的内部环境调试成功,可以很好运行,但是将程序转移到tomcat的webapp下运行也是出现这个错误,是不是我的tomcat配置出了问题啊???如果是的话可能会是哪里出问题啊?谢谢~`
解决方案 »
- webservice 传递byte[]类型参数
- junit测试dao,service,action
- int与long类型之间的转换
- 关于web服务器配置问题?
- 马上要工作了,请教各位
- 怎么会可以整合apache和tomcat的examples,其它的目录为什么不行呢!
- java sdk 4.0中可以加载javax.servlet.http.HttpServletRequest吗?
- 如何在Unix里设置系统路径?
- 高分相送:JavaMail
- 关于数据库更换的问题,谢谢:)
- 急啊!!!!有没有人遇到过使用Hibernate 出现javaw把CPU完全占用的情况?
- 在JSP端如何获取到客户机器的MAC地址
firstServlet 的包是什么
<url-pattern>/firstServlet/*</url-pattern>
</servlet-mapping>
试一下
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:534)
root cause java.lang.NoClassDefFoundError: test/firstServlet (wrong name: firstServlet)
java.lang.ClassLoader.defineClass0(Native Method)
java.lang.ClassLoader.defineClass(ClassLoader.java:539)
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:1634)
org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:860)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1307)
org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1189)
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:118)
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799)
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577)
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
java.lang.Thread.run(Thread.java:534)
note The full stack trace of the root cause is available in the Apache Tomcat/5.0.28 logs.我试过改成
<servlet-name>firstServlet</servlet-name>
<url-pattern>/firstServlet/*</url-pattern>
</servlet-mapping>还是不行啊```
firstServlet.java 是不是没有包结构没有包结构的servlet 是不能被加载的
package test ; //加上这一句,编译后把class放到test文件夹下面就可以了
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class firstServlet extends HttpServlet
{
public void init(ServletConfig config) throws ServletException
{
super.init(config);
}
public void service(HttpServletRequest request,HttpServletResponse response) throws IOException
{
//设置mime
response.setContentType("text/html;charset=GB2312");
PrintWriter out=response.getWriter();
out.println("<HTML> <BODY>");
out.println("这是一个简单的servlet。");
out.println("客户端IP地址是:"+request.getRemoteAddr()+"<br/>");
out.println("</body> </html>");
}
}