2015-05-28 21 views
7

Tôi cần trợ giúp tìm ra lý do tại sao một vài ứng dụng web của tôi liên tục ném lỗi 404 khi cố gắng đưa lên JSP. Một trong số chúng có JSP được truy cập trực tiếp và cái còn lại có một servlet chuyển tiếp tới một JSP. Các trang hoạt động hầu hết thời gian, nhưng đôi khi sẽ ném 404. Nếu người dùng làm mới trình duyệt của họ 1-3 lần, trang bắt đầu hoạt động trở lại mà không cần bất kỳ thay đổi nào.Tại sao máy chủ Tomcat của tôi ném liên tục 404 khi biên dịch JSP?

Đây là một ví dụ về các lỗi như đã thấy trong các trình duyệt web (Chrome): type: Status report message: /app_root/my_page.jsp description: The requested resource is not available

vấn đề này dường như có liên quan đến biên dịch lại các trang JSP. Tệp .war và thư mục mở rộng không thay đổi. Luôn luôn có những ba lỗi trong các bản ghi tương ứng với từng lỗi 404: WARNING: Failed to delete generated class file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.class] May 19, 2015 6:32:24 AM org.apache.jasper.compiler.Compiler removeGeneratedFiles WARNING: Failed to delete generated Java file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.java] May 19, 2015 6:32:24 AM org.apache.jasper.compiler.Compiler generateJava WARNING: Failed to delete generated Java file [D:\Apache Software Foundation\Tomcat 7.0\work\Catalina\localhost\app_root\org\apache\jsp\my_005fpage_jsp.java]

Tôi đang chạy Java 1.7 trên Tomcat 7.0.53. Tomcat đang chạy trên máy chủ Windows 2008 R2.

Đây là những gì tôi đã thử cho đến nay, dựa trên thông tin tôi đã tìm thấy từ google. Tuy nhiên, 404 vẫn tiếp tục.

  1. của Windows Disabled lập chỉ mục trên toàn bộ thư mục Tomcat
  2. tắt chế độ phát triển trong môi trường sản xuất của tôi
  3. Tăng modificationTestInterval trong môi trường bảo đảm chất lượng của tôi từ mặc định (4 giây) tới 3600 (1 giờ) [Lưu ý: nó hiện được đặt thành 0 để cố gắng giúp tôi tạo lại vấn đề]
  4. Đã thay đổi chủ sở hữu trên thư mục công việc Tomcat thành id giống với id mà dịch vụ đang chạy.

Tôi đang trong quá trình chống vi-rút bị tắt trên thư mục công việc để xem điều đó có hữu ích hay không.

Trong khi sự cố này xảy ra trên các máy chủ sản phẩm và máy chủ QA của tôi, nó không xảy ra đối với tôi trên phiên bản Tomcat cục bộ của tôi. Trong thực tế, tôi chưa thấy vấn đề từ máy trạm của tôi ngay cả khi chạy các ứng dụng QA và Prod. Vấn đề này chỉ được nhìn thấy bởi những người khác.

+0

Bạn đã cố xóa tệp lớp đã tạo theo cách thủ công trong khi đăng nhập với tư cách người dùng đang chạy tomcat nào? – Rajesh

+0

Tôi vừa thử làm điều này bằng tay. Nó làm việc miễn là tôi đã làm nó với các đặc quyền quản trị - hoặc là mở cmd với admin privs hoặc trả lời pop-up khi xóa thông qua Windows Explorer. – Spiritis

+0

Tắt quét vi-rút không có tác dụng. Kiểm tra thêm cho thấy vấn đề này chỉ xảy ra khi servlet đang chuyển tiếp tới JSP. Việc truy cập JSP trực tiếp hoạt động tốt. Tôi chỉ thay đổi thư mục công việc để làm cho tài khoản dịch vụ tomcat có toàn quyền kiểm soát một cách rõ ràng. Điều đó cho phép tôi xóa các tệp có id đó mà không phải ủy quyền truy cập quản trị viên. – Spiritis

Trả lời

2

Tôi đã gặp sự cố tương tự sau khi triển khai .war trên máy chủ trực tiếp của chúng tôi. Đây là những bước mà tôi theo sau để giải quyết vấn đề:

1) Shut down server tomcat

2) Đến <your tomcat directory> -> work -> Catalina -> localhost -> <your project> -> org -> apache -> jsp ->

3) tay xóa cả .class.java

4) Xóa tệp .war và thư mục được triển khai từ trang web đang gặp sự cố trên thư mục webapps.

5) khẩu mới .war, và đặt nó vào webapps thư mục.

6) Khởi động lại dịch vụ tomcat.

Khi máy chủ kết thúc triển khai, nó sẽ tự động tạo lại các tệp đã xóa trong thư mục "cơ quan" và trang web sẽ khả dụng trở lại mà không có lỗi 404 liên tục.

Tôi hy vọng nó cũng phù hợp với bạn.

1

Kiểm tra quyền của tệp hoặc thư mục này. Nói chung vấn đề này là do thiếu quyền truy cập vào các thư mục.

2

Vùng chứa Tomcat lưu trữ các tệp .java và .class được tạo bởi trình phân tích cú pháp JSP, được sử dụng bởi ứng dụng web. Đôi khi chúng bị hỏng hoặc không thể tìm thấy. Điều này có thể xảy ra sau khi bản vá hoặc bản nâng cấp có chứa các sửa đổi đối với JSP.

Giải pháp chỉ đơn giản là xóa thư mục công việc và khởi động lại tomcat

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