2012-03-19 35 views
5

Có cách nào để gỡ lỗi các ứng dụng JSF + PrimeFaces bằng cách chỉ cần xem một tệp nhật ký không? Để cụ thể hơn, dưới đây là cách cá nhân tôi làm điều đó vào lúc này nếu có điều gì đó không hoạt động như mong đợi:Gỡ lỗi JSF + Ứng dụng PrimeFaces

  1. Tìm chỉ báo trực quan trên trang Web (ví dụ: nếu tôi nhận được HTTP 500 rõ ràng là đã xảy ra sự cố)
  2. Tôi tìm trong tệp nhật ký của máy chủ ứng dụng của mình để biết bất kỳ cảnh báo, lỗi hoặc ngăn xếp nào
  3. Tôi tìm trong bảng điều khiển mạng của Firebug để xem có lỗi nào trong phản hồi HTTP hay không; điều này có xu hướng xảy ra theo thời gian (và nó không được hiển thị trong nhật ký!)
  4. Tôi kiểm tra xem đó có phải là lỗi xác thực không bằng cách bao gồm p:message trên biểu mẫu và hiển thị nó.

Đối với tôi, kiểm tra lỗi là quy trình làm việc 4 bước. Có cách nào tốt hơn để làm điều này? Lý tưởng nhất, nó sẽ là tuyệt vời nếu tất cả các lỗi này có thể được đăng nhập vào một bản ghi duy nhất. Đây có phải là DIY hoặc có một số cách tiêu chuẩn để làm điều đó?

Cảm ơn!

+1

JSF/PrimeFaces thực sự nuốt ngoại lệ đối với yêu cầu ajax. Chỉ Mojarra cho thấy một cảnh báo trần khi giai đoạn dự án được thiết lập để 'Phát triển'. PrimeFaces bỏ qua nó hoàn toàn.Tuy nhiên, bạn có thể sử dụng trình xử lý ngoại lệ để cho phép chúng hiển thị toàn bộ trang lỗi mặc định. Xem thêm [full ajax exception handler] (http://balusc.blogspot.com/2012/03/full-ajax-exception-handler.html). – BalusC

Trả lời

3

Không có gì ngoài hộp sẽ cung cấp cho bạn những gì bạn mô tả vì đây là tất cả các tình huống xảy ra trên các lớp khác nhau.

  1. Điều này thường là do ngoại lệ không được thực hiện theo cách của nó lên ngăn xếp cuộc gọi. Nếu bạn cải thiện mã của bạn để xử lý ngoại lệ thì những trường hợp này sẽ bị bắt và ghi lại.

  2. Cải thiện xử lý ngoại lệ và ghi nhật ký ở tất cả các lớp ứng dụng sẽ giúp nắm bắt tất cả các lỗi và ngoại lệ trong một tệp nhật ký duy nhất trên máy chủ ứng dụng.

  3. Firebug bắt lỗi mạng trong postbacks không đồng bộ cũng như ngoại lệ Javascript. Điều này hoàn toàn là một mối quan tâm phía khách hàng vì máy chủ chỉ xuất phát từ đánh dấu. Có thể bắt tất cả các ngoại lệ Javascript trước khi chúng được truyền lên Firebug và gửi báo cáo lỗi không đồng bộ đến máy chủ để máy chủ ghi nhật ký. Đây không phải là quá khó khăn để thực hiện.

  4. Một lần nữa, đăng nhập tốt hơn trong các phương pháp xác thực của bạn sẽ có thể đưa thông tin này vào nhật ký máy chủ ứng dụng để bạn có tất cả thông tin này ở một nơi.

Điểm mấu chốt ở đây là tất cả các tình huống mà chúng trở thành không vấn đề đối với nhà phát triển tìm hiểu cách trực quan bao gồm mã Instrumentation tốt trong suốt ứng dụng của họ.

1

Xin chào, tôi cũng đang phát triển một ứng dụng bằng cách sử dụng jsf và primefgaces. Tôi cũng đã phải đối mặt với vấn đề này trước đó. Bây giờ tôi đang sử dụng log4j để đăng nhập tất cả các lỗi/ngoại lệ/nghi ngờ vào một tập tin duy nhất. Nó cũng rất dễ dàng để sử dụng nó. Bạn có thể có một cái nhìn vào nó, nó có thể giải quyết vấn đề của bạn.

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