2009-03-18 21 views
18

tôi đang làm điều này sử dụng JAXB để unmarshall một số XML vào các đối tượng Java:JAXB mang lại cho tôi: java.lang.IllegalArgumentException: là thông số không phải là null

Mã của tôi trông một chút như thế này:

InputStream testMsg = getClass().getResourceAsStream("TestDocumentEvent.xml"); 
Unmarshaller unmarshaller = JAXBContext.newInstance(DocumentEvent.class).createUnmarshaller(); 
DocumentEvent unmarshalled = (DocumentEvent) unmarshaller.unmarshal(testMsg); 

Tuy nhiên, khi tôi chạy mã này tôi nhận được một ngoại lệ:

java.lang.IllegalArgumentException: is parameter must not be null 

gì đang xảy ra?

Trả lời

22

Điều này là do InputStream bạn đang chuyển đến thông số unmarshaller ('là', geddit) là rỗng, hãy kiểm tra xem tên tài nguyên có chính xác hay không.

+2

Tôi biết, tôi đã trả lời câu hỏi của riêng mình. Tôi thêm vào điều này bởi vì không có nhiều về google về điều này và lỗi không phải là có thể đọc được – SCdF

+2

Tôi không biết, có vẻ như khá rõ ràng đối với tôi - nếu cuộc gọi unmarshal là phàn nàn ngay lập tức rằng đối số của nó là null, những gì không đọc được về điều đó? –

+2

Bạn đang nói rằng "IS" viết tắt của "InputStream" trong đơn khiếu nại? Có, đó là một chút không rõ ràng, nhưng ít nhất là từ ngữ cảnh nó dễ dàng để tìm ra. – Eddie

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