2012-07-02 45 views
8

Tôi đang cố gắng chạy một servlet trên Tomcat cục bộ của mình với Eclipse.Trạng thái HTTP 404 - trên Eclipse với Tomcat

Nhưng tôi vẫn gặp lỗi này và không biết phải làm gì khác.

Tôi thực sự ghi lại nó ở đây: http://www.screenr.com/ZyD8

Rất cám ơn!

Ngoài ra tôi đã thay đổi web.xml để này:

 <?xml version="1.0" encoding="UTF-8"?> 
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" 
    id="WebApp_ID" 
    version="3.0" 
    xmlns="http://java.sun.com/xml/ns/javaee" 
    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" > 

    <display-name> 
TEST3 
    </display-name> 

    <welcome-file-list> 

     <welcome-file> 
TEST3 
     </welcome-file> 
    </welcome-file-list> 

    <servlet> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <servlet-class> 
HelloServlet 
     </servlet-class> 
    </servlet> 

    <servlet-mapping> 

     <servlet-name> 
helloServlet 
     </servlet-name> 

     <url-pattern> 
/hello 
     </url-pattern> 
    </servlet-mapping> 

</web-app> 
+0

Servlet có các gói, nếu có thì viết tên lớp đủ điều kiện trong web.xml –

+0

nó nằm trong "gói mặc định". Nhưng ngay cả khi tôi tạo nó trong một gói "test.servlet" và đặt "test.servlet.HelloServlet" làm tên lớp trong web.xml, nó cũng cho cùng một lỗi – user387184

+0

Kiểm tra câu trả lời của tôi. –

Trả lời

20

Tôi đã thấy liên kết của bạn.

Khi nào bạn chạy bất kỳ dự án web động nào. Theo mặc định, Servlet vùng chứa (là Tomcat trong trường hợp này) tìm kiếm các tệp được chỉ định trong danh sách chào mừng. Kiểm tra số web.xml của bạn, số này phải chứa mục nhập như

<welcome-file-list> 
    <welcome-file>index.html</welcome-file> 
    <welcome-file>index.htm</welcome-file> 
    <welcome-file>index.jsp</welcome-file> 
    <welcome-file>default.html</welcome-file> 
    <welcome-file>default.htm</welcome-file> 
    <welcome-file>default.jsp</welcome-file> 
    </welcome-file-list> 

Bạn chưa tạo tệp từ bất kỳ danh sách nào ở trên. Vì vậy, chạy

http://localhost:8080/TEST2 sẽ cung cấp cho bạn lỗi 404.

Thay vì chạy: http://localhost:8080/TEST2/HelloSerlvet sẽ gọi servlet mà bạn đã tạo.

Chỉnh sửa: Kiểm tra menu Dự án nhật thực và xác minh "Xây dựng tự động" được chọn và vùng chứa Servlet đang chạy (http://localhost:8080).

Chỉnh sửa 2: Dự án Nhấp chuột phải -> Thuộc tính, Chọn Đường dẫn Xây dựng Java -> tab nguồn -> Thay đổi thư mục đầu ra Mặc định. Tạo /WEB-INF/classes dưới /WebContent (mặc định trong nhật thực)

+0

vui lòng xem web.xml đính kèm của tôi - khi tôi nhập "http: // localhost: 8080/TEST2/HelloSerlvet", nó sẽ cho cùng một lỗi. Tôi nghĩ rằng lớp học không được triển khai ở tất cả các vị trí chính xác, nhưng tôi không biết phải làm gì? – user387184

+0

Xin lỗi, nhưng tôi đã thử mọi thứ và vẫn không hoạt động. Tôi phải làm gì để xây dựng Buildpath trên đầu trang dưới "thư mục nguồn trên đường dẫn xây dựng" và những gì tôi nên đặt trong "Đầu ra mặc định FOlder". Tôi có nên kiểm tra "Cho phép thư mục đầu ra dưới dạng thư mục nguồn" không? – user387184

+0

Vui lòng đọc kỹ. Tôi đã đề cập để tạo thư mục mới. trong Edit 2 –

7

này được dựa trên câu trả lời từ Hardik Mishra với một số điểm nổi bật: 1. Từ thông qua trình duyệt (không phải từ Eclipse), thủ tạo "/ WEB-INF/classes "under/WebContent 2. Dự án Nhấp chuột phải -> Thuộc tính, Chọn Đường dẫn Xây dựng Java -> tab nguồn -> Thay đổi thư mục đầu ra Mặc định thành thư mục bạn vừa tạo ở trên. 3. đi tới trình thám hiểm tệp, không phải từ Eclipse, vì Eclipse "dự án Explorer" có thể có một số bộ lọc không hiển thị thư mục lớp. Bạn sẽ thấy các tệp .class được biên soạn trong thư mục này

Thử kiểm tra lại. Nếu nó không hoạt động, khởi động lại Eclipse một lần và sau đó nó sẽ hoạt động.

4

Tôi đã nhìn thấy các loại vấn đề này một thời gian khá lâu và đã thấy nhiều giải pháp hoạt động cho một số và phần còn lại vẫn gặp phải vấn đề tương tự.

Một trong các giải pháp đơn giản là đi qua .java/.jsp/etc., Nhấp chuột phải và chọn chạy từ tùy chọn máy chủ.

Tôi thấy giải pháp này là cách chạy đơn giản nhưng hiệu quả.

đường dẫn Tài nguyên Java-> src -> -> example.java -> nhấp chuột phải -> chạy dưới dạng -> chạy trên máy chủ.

Ngay cả sau này, bạn cũng có thể gặp phải một số vấn đề như cổng 8005 không có sẵn, vui lòng theo liên kết bên dưới để xóa cài đặt Apache hiện tại và thiết lập lại.

TOMCAT - HTTP Status 404

Deployment error:Starting of Tomcat failed, the server port 8080 is already in use

Hope phát hiện này là hữu ích.

0

Thông thường, khi bạn sửa đổi tệp web.xml, bạn nên "dọn dẹp" Tomcat. Chỉ cần nhấp chuột phải vào Tomcat trong Eclipse và làm sạch. Làm tương tự cho dự án. Bạn cũng có thể dừng Tomcat, xóa ứng dụng khỏi Tomcat (nhấp chuột phải vào ứng dụng dưới Tomcat và xóa) rồi thêm lại. Khởi động lại Tomcat.

Các vấn đề liên quan