Tôi đang cố tải một tệp hình ảnh nhị phân để thực hiện một số xử lý bên trong mã Java phía máy chủ của tôi. Tôi hiện đang đặt hình ảnh của tôi trong gói mà lớp thực hiện của tôi tồn tại và gọi:Làm cách nào để đọc tệp tài nguyên trong tệp chiến tranh chưa được giải mã được triển khai trong Tomcat?
Image img = Image.getInstance(this.getClass().getResource("logo.png"));
này hoạt động tốt khi tôi đang chạy Tomcat trên hộp phát triển của tôi trong một thiết lập chiến tranh bùng nổ, nhưng khi tôi triển khai đến một máy chủ chạy Tomcat, nơi nó không phát nổ các tập tin chiến tranh, lệnh gọi hàm getResource trả về null.
Tôi cũng đã cố gắng di chuyển hình ảnh vào thư mục gốc bối cảnh của tôi và truy cập vào nó như thế này:
Image img = Image.getInstance(this.getClass().getResource("/../../logo.png"));
Một lần nữa, điều này hoạt động trên hộp phát triển của tôi, nhưng không phải khi tôi triển khai nó ở nơi khác.
Có cách nào tốt hơn để truy cập tệp này không? Tôi đang làm gì sai?
Cảm ơn !!
tôi có lẽ nên có cũng đề cập rằng tôi sử dụng Maven để xây dựng ứng dụng web của tôi. Tôi có một câu trả lời hoàn chỉnh để khắc phục sự cố của mình, nhưng tôi không thể đăng câu hỏi đó trong 8 giờ theo câu hỏi của riêng tôi. – 11101101b
Đặt tài nguyên vào thư mục "src/main/resources" của bạn. Sau đó truy cập chúng với: this.getClass(). GetResource ("/ logo.png"); hoặc: Thread.currentThread(). GetContextClassLoader(). GetResource ("logo.png"); – 11101101b