Tôi muốn lấy tệp xml từ đường dẫn lớp của tôi để loại bỏ nó và sử dụng nó cho mục đích thử nghiệm. Vấn đề của tôi là tải xuống dưới dạng InputStream. Tôi đã viết những dòng này nhưng tôi luôn nhận được kết quả rỗng.tải tệp (xml) từ đường dẫn lớp trong ứng dụng web mùa xuân
InputStream is = getClass().getResourceAsStream("WebContent/WEB-INF/classes/testing/"+ COMPLETE_DOCUMENT + ".xml");
Tất nhiên đường dẫn bạn thấy trong đối số phương pháp là đường dẫn đến tệp của tôi. Tôi đã thử một số kết hợp:
WebContent/WEB-INF/classes/testing/
classpath:testing/
classpath*:testing/
nhưng tôi luôn nhận được InputStream = null.
Tôi thậm chí đã cố gắng để chuyển sang
ClassLoader.getResourceAsStream(...)
nhưng có gì xảy ra. Tôi cho rằng đường dẫn đến tài nguyên là bằng cách nào đó sai, nhưng tôi không thể tìm ra nơi. Từ servlet.xml của tôi, tôi sử dụng một số tài nguyên trong classpath cấu hình PropertyPlaceholderConfigurer hoặc Jaxb2Marshaller chỉ với cú pháp
"classpath:folder/file.xsd"
và nó hoạt động hoàn hảo. Thư mục tôi muốn tải xml của tôi từ là một anh chị em của một trong ví dụ trên. Tôi đang thiếu gì?
EDIT: tôi cố gắng làm theo các cách tiếp cận lớp helper mùa xuân ClassPathResource và tôi nhận được một hành vi kỳ lạ: như tôi đã nói trước khi tôi đã có một số tài nguyên được tải từ classpath bởi một số đậu mùa xuân ở lần khởi động. Nếu tôi sử dụng đường dẫn đến các tài nguyên như vậy trong mã do dardo đề xuất như sau:
ClassPathResource cpr = new ClassPathResource("xmlschemas/lrinode.xsd");
InputStream is = cpr.getInputStream();
Tôi vẫn nhận được FileNotFound Exception
! Tất nhiên "xmlschemas/lrinode.xsd"
là một xsd tôi tải khi khởi động thành công. Nó không hoạt động ngay cả khi tôi sử dụng đường dẫn đầy đủ đến tài nguyên, bắt đầu từ thư mục gốc của ứng dụng.
Tôi bắt đầu nghĩ rằng tôi thiếu một thứ gì đó tầm thường.
cảm ơn, tôi quan tâm đến lớp trợ giúp này. Tôi đã thử giải pháp của bạn nhưng tôi vẫn nhận được '" java.io.FileNotFoundException: tài nguyên đường dẫn lớp [testing/sample_complete_document.xml] không thể mở được vì nó không tồn tại "' ngoại lệ. Tên tệp là tên thực tế cho tệp trong đường dẫn lớp của tôi. PS. Tôi đã sử dụng JAXB2^__^ – MaVVamaldo
Whats đường dẫn đầy đủ nếu tài liệu xml – dardo
đường dẫn đầy đủ của tài liệu xml như sau: '/ VirtualResource2/WebContent/WEB-INF/classes/testing/sample_complete_document.xml'. Khóa học "VirtualResource2" là tên của ứng dụng web của tôi. – MaVVamaldo