Tôi đang phát triển một ứng dụng GWT. Nó đang sử dụng RPC để thu thập thông tin từ một hệ thống nội bộ. Nó làm như vậy bằng cách sử dụng một thư viện jar, cho phép gọi nó là alpha.jar. Chúng tôi đang sử dụng jar này trong nhiều ứng dụng để nó hoạt động tốt, và btw của nó được xây dựng với ANT, bên ngoài nhật thực.ngoại lệ không mong muốn: java.lang.NoClassDefFoundError: org/apache/log4j/LogManager
Một số lớp trong tham chiếu alpha.jar LOG4J2 và cũng có rất nhiều các thẻ bên ngoài khác, vì vậy khi chúng tôi chạy một ứng dụng, chúng tôi chuyển một đường dẫn tới tất cả mọi thứ và mọi thứ hoạt động tốt. Xin lưu ý rằng đây không phải là vấn đề người mới bắt đầu đơn giản. Bản alpha.jar đang hoạt động như mong muốn, bao gồm cả các cuộc gọi tới Log4J.
Vấn đề:
Trong Eclipse, tôi có dự án này GWT ứng dụng và cũng là dự án Alpha.jar (với mã nguồn của khóa học). Phần máy chủ cần instatiate các đối tượng alpha và giao tiếp với hệ thống alpha.
Khi thực hiện việc này trong GWT bằng cách thêm tham chiếu đường dẫn xây dựng vào dự án Alpha, ứng dụng GWT của tôi chạy tốt.
Khi tôi thay vì tham chiếu dự án bao gồm (trong chiến tranh/WEB-INF/lib) alpha.jar và chạy ứng dụng, tôi nhận được lỗi trong tiêu đề lần đầu tiên tôi khởi tạo lớp từ alpha.jar.
Không có đặc thù nào về cách alpha.jar được xây dựng, vì vậy về cơ bản nó phải giống như dự án trong nhật thực, phải không?
Lưu ý những điều sau:
*) lọ phụ thuộc của alpha.jar cũng nằm trong chiến tranh/WEB-INF/lib. log4j2-core, log4j-api cũng như một loạt những người khác (ví dụ như apache)
*) Nếu tôi xóa alpha.jar (và mã gọi nó) và thay vào đó chỉ cần thêm mã gọi là LOG4J2, mã đó cũng hoạt động tốt!
Làm cách nào để nhận được lỗi lạ khi sử dụng JAR ?? Cũng lưu ý NoClassDefFoundError, nó không phải là ClassNotFoundException phổ biến hơn. Vui lòng xem What causes and what are the differences between NoClassDefFoundError and ClassNotFoundException?
Nếu bạn cần thêm thông tin, hãy cho tôi biết.
bạn có thể cung cấp xây dựng kịch bản của bạn ... có lẽ bạn đang thiếu một sự phụ thuộc Log4J cần thiết để đăng nhập tin nhắn. Và kiểm tra thời gian chạy/SDK Java của bạn trong Eclipse và Ant (phải giống nhau) – Drejc
Không, tôi không thiếu phụ thuộc. Vui lòng đọc lại câu hỏi. –
Xin lỗi nhưng từ mô tả về vấn đề của bạn, tôi không thể hiểu chính xác bạn đang làm gì và vấn đề ở đâu - do đó không ai trả lời câu hỏi của bạn cho đến nay. – Drejc