2009-04-02 37 views
5

Tôi đã sử dụng thư viện JDOM để đọc và ghi các tệp XML thông qua Java Servlets.Lỗi "Kết thúc sớm tệp" khi Java đọc và ghi các tệp dữ liệu XML

Vấn đề là khi tôi gửi nhiều yêu cầu sử dụng AJAX cho các servlet của tôi đọc và ghi dữ liệu trong tệp XML, nhiều lần nó không hiển thị lỗi: Kết thúc sớm tệp. Làm thế nào tôi có thể đồng bộ hóa tất cả các đọc/ghi vào các tập tin hoặc có cách nào khác để ngăn chặn những vấn đề này? Hãy cho tôi biết nếu cần thêm chi tiết.

Liệu việc sử dụng chuỗi có thực hiện tốt trong trường hợp này không?

Cảm ơn rất nhiều!

Trả lời

6

Hai giải pháp có thể là:

  • Viết các tập tin của bạn để thename.xml.part và sau đó một lần thực hiện/đóng cửa để đổi tên để thename.xml, mà làm cho ghi điều để trở thành nguyên tử - người đọc không thể đọc nó cho đến khi nó chắc chắn được thực hiện miễn là nó chỉ tìm kiếm các tập tin ".xml".
  • hoặc, sử dụng Cơ sở dữ liệu, nguyên tử là những gì họ làm.
+0

bạn vui lòng xây dựng câu trả lời?, Tôi nhận được lỗi tương tự nhưng không thể hiểu câu trả lời của bạn. –

0

Tôi đã gặp phải loại vấn đề như vậy nhưng chính xác là không giống nhau. Tôi đang chia sẻ kinh nghiệm của mình về lỗi này. Xin lỗi, xin lỗi vì bất kỳ sự bất tiện nào.

tôi đã phải đối mặt với vấn đề sau đây

  1. tôi phải tạo một tập tin xml với dữ liệu biến động. Và đăng xml đó lên một URL bằng PostMethod trong java.

  2. Thông thường Nó hoạt động. Nhưng khi dữ liệu biến động là null. Sau đó, nó cho thấy “kết thúc sớm của tập tin"

Giải pháp:...

  1. Chỉ cần kiểm tra các biến là null hay không Và nó làm việc cho tôi
+2

Chỉ cần FYI "chính xác không giống nhau" là không hoàn toàn những gì bạn có nghĩa là, tôi nghĩ. Nên là "không chính xác như nhau". :) – Ben

-1

tôi kinh nghiệm của tôi là ...

  1. Clean Project
  2. Rebuild Dự án

sau đó nó sẽ chạy thành công ....

0

Hãy thử thêm tất cả các yêu cầu ghi vào một Queue Process và sau đó xây dựng/thêm XML bằng những yếu tố của Queue.

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