2013-04-10 49 views
9

tôi đang tạo ra servlet đơn giản và triển khai nó trong máy chủ tomcat nhưng tôi nhận được lỗi sau:HTTP Status 500 - Lỗi tạo đối tượng lớp servlet pkg.coreServlet

HTTP Status 500 - Error instantiating servlet class pkg.coreServlet

Cấu trúc file trên server tomcat:

webapps  
| 
- aarya 
    | 
    - WEB-INF 
    | 
    -web.xml 
    -src(folder) 
     | 
     -pkg 
     | 
     -coreServlet.class 

web.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<web-app version="2.4" 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"> 


<servlet> 
    <servlet-name>aaryaservlet</servlet-name> 
    <servlet-class>pkg.coreServlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>aaryaservlet</servlet-name> 
     <url-pattern>/coreServlet</url-pattern> 
    </servlet-mapping> 
</web-app> 

coreServlet.java:

package pkg; 

import java.io.*; 
import javax.servlet.*; 
import javax.servlet.http.*; 

public class coreServlet extends HttpServlet 
{ 
    /** 
    * 
    */ 
    private static final long serialVersionUID = 1L; 

public void doGet(HttpServletRequest req,HttpServletResponse res) 
throws ServletException,IOException 


    { 
     PrintWriter out = res.getWriter(); 
     res.setContentType("text/html"); 
     out.println("this is First servlet Example "); 
    } 
} 

url Tôi đang tặng là http://localhost:8080/aarya/coreServlet Tôi thử khởi động lại tomcat nhưng tôi gặp lỗi tương tự. Tôi đang làm sai ở đâu?

Trả lời

12

Không đặt thư mục src trong thư mục WEB-INF !!

+1

điểm tốt! Đã không phát hiện ra điều đó! Nó phải là WEB-INF/lớp học – NickJ

+0

Tôi đang làm với sự trợ giúp của http://www.mkyong.com/servlet/a-simple-servlet-example-write-deploy-run/ Có, đó là sai? – Anshul

+0

ngay cả trong này, src là bên cạnh của WEB-INF – Ankit

3

Bạn đã đóng thẻ < web-app> trong tệp web.xml chưa? Từ những gì bạn đã đăng, thẻ đóng dường như bị thiếu.

+0

Xin lỗi tôi đã bỏ lỡ bài đăng đó. – Anshul

3

Lớp servlet phải ở trong các lớp WEB-INF/không phải WEB-INF/src.

4

Thay đổi

private static final long serialVersionUID = 1L; 

với bất kỳ giá trị khác như

private static final long serialVersionUID = 102831973239L; 

bạn cũng có thể tạo ra nó tự động trong nhật thực.

Đó là vì mỗi servlet trong một ứng dụng có tomcat id.and độc đáo gây ra vấn đề với hai servlets có cùng id ...

3

Trong trường hợp của tôi thiếu private static final long serialVersionUID = 1L; dòng gây ra lỗi tương tự. Tôi đã thêm vào dòng và nó đã hoạt động!

0

Tôi gặp sự cố với việc khởi tạo Servlet. Tôi làm sạch dự án và nó đã làm việc cho tôi. Trong menu nhật thực, vào Project-> Clean. Nó sẽ hoạt động.

0

Try This:)

trước: -

<servlet> 
    <servlet-name>TestServlet</servlet-name> 
    <servlet-class>TestServlet</servlet-class> 
</servlet> 

Sau: -

<servlet> 
    <servlet-name>TestServlet</servlet-name> 
    <servlet-class>operation.TestServlet</servlet-class> 
</servlet>