Công cụ Java cho lớp URI: Thêm một phụ thuộc ném ClassNotFoundException

Dec 12 2020

Tôi đã tạo công cụ cho một Trình tạo URI để ghi URI đã tạo vào một trình ghi nhật ký. Lớp Logshipper là một phần của Thư viện tác nhân của tôi, vừa là phần phụ thuộc maven vừa là Arg thời gian chạy.

Công cụ bên trong Agent sử dụng ClassFileTransformer để thêm dòng mã vào phương thức khởi tạo đó. Tuy nhiên, khi phương thức khởi tạo được gọi, nó sẽ ném ra một ClassNotFoundException với detailMessage: edu / overbeck / masterarbeit / agent / LogShipper. Khi tôi xem trong ClassLoader, tuy nhiên, Class đã được tải. Ảnh chụp màn hình trình gỡ lỗi IntelliJ của tôi:! [Lỗi kỳ lạ] [1]

Lý do tại sao điều này xảy ra? Lớp công cụ khác của tôi, ContentLengthOutputStream từ thư viện Apache HTTP-core, hoạt động tốt với LogShipper. [1]:https://i.stack.imgur.com/vf8b4.png

Trả lời

PeerOverbeck Dec 13 2020 at 05:34

Đó là vấn đề về trình tải lớp - đã được giải đáp và giải thích ở đây: Java NoClassDefFoundError khi gọi lớp riêng từ phương thức công cụ Thêm AgentLib của tôi có chứa lớp LogShipper như XBootclasspath đã trợ giúp.