2013-04-05 13 views
5

Tôi đang phân tích cú pháp số lượng hợp lý các nguồn cấp dữ liệu RSS trong tầng bằng cách sử dụng Java ROME làm trình phân tích cú pháp XML của tôi. Đôi khi một trong các nguồn cấp dữ liệu RSS có thể không truy cập được do sự cố mạng, dẫn đến thời gian chờ của Ổ cắm khi cố gắng tạo đối tượng XMLReader (XMLReader mới (url)).Làm thế nào để thay đổi thời gian chờ socket mặc định của trình phân tích cú pháp Java ROME?

Vấn đề là thời gian chờ mặc định kéo dài khoảng 2 thập kỷ và khi nó xảy ra, nó làm chậm toàn bộ quá trình.

Có cách nào để thay đổi thời gian chờ của socket mặc định trong Java ROME không?

Trả lời

6

Khi bạn tạo XMLReader object (new XMLReader(url)), bạn đã có đối tượng URLConnection được chuyển làm đối số cho XMLReader. Gọi, setConnectTimeout(long) của URLConnection và đặt giá trị thời gian chờ của bạn. Tôi không nghĩ rằng Rome cung cấp bất kỳ tùy chọn thời gian chờ kết nối nào

+0

Cảm ơn bạn. Đối tượng được truyền làm đối số cho hàm tạo XMLReader thực ra là đối tượng java.net.URL, không cung cấp bất kỳ phương thức setConnectTimeout nào. Trên thực tế, tôi có thể bọc đối tượng java.net.URL vào đối tượng URLConnection và chuyển nó tới hàm tạo XMLReader, nhưng sau đó tôi được yêu cầu triển khai phương thức connect() cho đối tượng URLConnection và tôi không có ý tưởng về việc đặt mũ trong đó .. – Francesco

+1

'XmlReader' có thể được xây dựng với cả URL và URLConnection. kiểm tra http://www.jarvana.com/jarvana/view/rome/rome/0.9/rome-0.9-javadoc.jar!/com/sun/syndication/io/XmlReader.html – rajesh

+4

Cảm ơn bạn rất nhiều. Giải quyết. \t \t \t \t \t \t \t 'URLConnection URLConnection = new URL (rssSource) .openConnection(); '\t' urlConnection.setConnectTimeout (4000);' 'reader = new XmlReader (URLConnection); ' ' thức ăn = new SyndFeedInput() .build (reader); ' – Francesco