我写了一个serverlet(SampleServlet1.java)原文件如下:package ch7;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class SampleServlet1 extends HttpServlet {
   public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException,IOException 
   {
      response.setContentType("text/html; charset=GB2312");
  PrintWriter out = response.getWriter();
  
  out.println("<html>");
  out.println("<head><title>一个简单的Servlet</title></head>");
  out.println("<body>");
  out.println("大家好!<br>");
  out.println("这是一个简单的Servlet!");
  out.println("</body>");
  out.println("</html>");
  out.close();
   }
}我把SampleServlet1.java放到站点根目录下的ch7\WEB-INF\classes\ch7 中,用resin服务
我在IE中输入:http://lsl:8080/ch7/sampleservlet1 这时resin自动把java文件编译成class文件,显示结果运行正常我有tomcat(端口为8081)服务在IE中输入:http://lsl:8081/ch7/sampleservlet1 报如下错误:
  HTTP Status 404 - /ch7/sampleservlet1--------------------------------------------------------------------------------type Status reportmessage /ch7/sampleservlet1description The requested resource (/ch7/sampleservlet1) is not available.
--------------------------------------------------------------------------------Apache Tomcat/5.0.28我以为resin编写的不能用到tomcat5.0下,所以我又重新按照书上说的tomcat下的编译方法重新编译一次,再运行,还是报上面的错误,可是用resin还是好好的。我的tomcat的配置如下:   <Host name="localhost" debug="0" appBase="d:\jsp_web"
       unpackWARs="true" autoDeploy="true"
       xmlValidation="false" xmlNamespaceAware="false">
       <Context path="/lyb" docBase="d:\jsp_web\lyb" debug="0" reloadable="true" crossContext="true"></Context>
       <Context path="/ch7" docBase="d:\jsp_web\ch7" debug="0" reloadable="true" crossContext="true"></Context>
   </Host>我的ch7\WEB-INF\下的web.xml内容如下:
  <?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
    version="2.4"> 
<display-name>Servlet</display-name>    
    <servlet>
        <servlet-name>SampleServlet1</servlet-name>
        <servlet-class>ch7.SampleServlet1</servlet-class>        
    </servlet>
    <servlet-mapping>
        <servlet-name>SampleServlet1</servlet-name>
        <url-pattern>/SampleServlet1</url-pattern>
    </servlet-mapping> 
</web-app>
请问是什么原因啊,请大家帮我看一下,如果50分不够的话,我可以再加分。

解决方案 »

  1.   

    这里错了:
    http://lsl:8081/ch7/sampleservlet1 注意类名的大小写,应该是http://lsl:8081/ch7/SampleServlet1
      

  2.   

    重启tomcat试一下,或者你使用ant进行配置发布也可以
    FYI
      

  3.   

    interhanchi(Stallman'fans) 
    刚才我的tomcat莫名其妙的又好了,你说的没错,看到你的贴子后,我再再看,后来确实用的是SampleServlet1(这次是我复制的类文件名,没看你的贴子前我还没有找到为什么好了的原因),可是我用resin的时候根本不要分大小写,全小写一样可以的,真的搞不懂tomcat了,他好象比resin吊一点,呵呵。我主要想学两种环境下通用的方法,谢了