作者rrrl (rrrl)
看板java
标题[JSP&Servlet] ServletException的问题
时间Fri May 23 00:37:53 2008
小弟我最近开始学做动态网页,看的书是head first系列的Servlet&Jsp,
看书的过程中遭遇了一些小小问题,希望大大们能耐心看完!
--
书上一开始要先建一个html档名form.html原始码如下:
<html>
<body>
<h1>啤酒选择画面</h1>
<form method="POST"
action="SelectBeer.do">
选出想喝的啤酒<p>
颜色;
<select name="color" size="1">
<option>light
<option>amber
<option>brown
<option>dark
</select>
<br>
<br>
<input type="SUBMIT">
</form>
</body>
</html>
--
--
接着又照着书上打了一个Servlet,原始码如下:档名是BeerSelect.java
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
public class BeerSelect extends HttpServlet{
public void doPost(HttpServletRequest req,HttpServletResponse res)
throws IOException,ServletException{
res.setContentType("text/html;charset=big5");
PrintWriter out = res.getWriter();
out.println("啤酒建议清单<br>");
String c = req.getParameter("color");
out.println("<br>你输入的颜色是"+c);
}
}
--
--
然後设定web.xml
<web-app xmlns="
http://java.sun.com/xml/ns/j2se"
xmlns:xsi="
http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://java.sun.com/xml/ns/j2se/web-app_2_4.xsd">
<servlet>
<servlet-name>Ch3 Beer</servlet-name>
<servlet-class>com.example.web.BeerSelect</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Ch3 Beer</servlet-mame>
<url-pattern>/SelectBeer.do</url-pattern>
</servlet-mapping>
</web-app>
--
档案配置的方式是在tomcat的webapp下建立一个Beer-v1,配置如下
Beer-v1/WEB-INF/classes/com/example/web/BeerSelect.class
\ \
form.html web.xml
--
接着去火狐那开那个localhost
第一个form.html会出现,但按下SUBMIT後却跳出了HTTP Status 500 -
exception:
javax.servlet.ServletException: Error allocating a servlet instance
(下略)
root cause
java.lang.NoClassDefFoundError: com/example/web/BeerSelect(wrong name:
BeerSelect) (下略)
请问这究竟发生什麽事了呢QQ"
我有用Error allocating a servlet instance去估狗过
还找到了作者的网站,发现他们有些人也有一样的问题,
里面还提到了是jdk版本不一样之类的答案XD
不过我还是不了解这之中怎麽运作的,要怎样解决这个问题呢?
--
奇妙的是:
如果我没有用那些com/example/web/资料夹,
直接把BeerSelect.class放在classes里面,修改一下web.xml的设定,
他就可以跑了XD
请问大大们这之中发生了什麽问题呢?
在这边先谢谢看完的大大们了!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.119.196.111
1F:推 csihcs:java.lang.NoClassDefFoundError 不就说你的class找不到吗? 05/23 01:15
2F:→ rrrl:可是我的确是放在那个下面了啊= = 是classpath的问题吗?? 05/23 01:19
3F:推 csihcs:我想有可能是这个原因 05/23 02:04
4F:→ rrrl:所以我该怎麽做= =? 可以说详细一点吗? 05/23 10:16
5F:推 csihcs:个人电脑中没有 J2EE 没办法测 05/23 14:42
6F:→ rrrl:那接下来该怎麽做啊QQ" 05/23 18:04
7F:推 ynchang:依照小弟的看法...你的Servlet中好像没有package... 05/24 14:23