2013-07-10 28 views
6

Tôi đang cố gắng tìm các lỗi cause của một lỗi JSF lạ. Để làm điều này, tôi cố gắng gỡ lỗi mã nguồn bên trong mô-đun javaee-web-api trong đó một NullPointerException được đưa ra trong khi hiển thị JSF. Nhưng tôi bị mắc kẹt vì trình gỡ lỗi không hiển thị cho tôi mã nguồn của vị trí đó.Các JAR bị loại bỏ (không có bytecode cho các phương thức) có nghĩa là gì?

Có một số discussion thread cho biết javaee-web-api bị tước (không có bytecode cho các phương thức) và có nghĩa là chỉ được sử dụng để biên dịch.

này có nghĩa là gì? Ai đó có thể giải thích chi tiết hơn không? Tôi muốn hiểu tại sao tôi không thể gỡ lỗi vị trí mà NullPointerException được ném. Tôi nghĩ rằng điều này liên quan đến thực tế là các JAR này bị tước bỏ.

+0

Tất cả những gì tôi có thể tìm thấy là bài đăng này ghi lại cùng một vấn đề, nhưng liệt kê một số lý do từ Oracle cho điều này: https://community.jboss.org/wiki/WhatsTheCauseOfThisExceptionJavalangClassFormatErrorAbsentCode?_sscc=t –

+0

Điều gì sẽ xảy ra không hiển thị cho tôi mã nguồn của vị trí đó "nghĩa là gì? Bạn có nghĩa là không có dấu vết ngăn xếp hoặc theo dõi ngăn xếp không có số dòng? –

Trả lời

2

Thông thường, các tệp lớp trong tệp jar sẽ chứa thông tin về các số dòng liên quan đến mã trong lớp - điều này được gọi là thông tin gỡ lỗi. Một cái lọ bị lột chỉ đơn giản là không có thông tin này.

Bạn đúng khi giả định đây là vấn đề. Theo dõi ngăn xếp bạn thấy sẽ không chứa bất kỳ số dòng nào liên quan đến mã trong bình bị tước. Vì bình được cung cấp bởi bên thứ ba, bạn không thể làm gì để có được thông tin đó.

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