2009-09-23 38 views
5

Tôi có một khách hàng được thiết lập để gửi yêu cầu đến máy chủ SOAP Dịch vụ thời tiết quốc gia. Tôi nhận được phản hồi mà tôi mong đợi, nhưng tôi không chắc chắn là cách tốt nhất để trích xuất dữ liệu từ nó mà tôi cần.Làm thế nào để trích xuất dữ liệu từ một phản ứng SOAP trong Java?

Ví dụ, có rất nhiều dữ liệu bổ sung trong XML (trong SOAPBody), nhưng tôi chỉ muốn lấy dữ liệu cho các tham số mà tôi đã đặt (chẳng hạn như nhiệt độ) cho POJO của tôi.

Cách tốt nhất để trích xuất dữ liệu này là gì?

+0

mã bạn đang sử dụng để thực hiện cuộc gọi SOAP là gì? – tster

Trả lời

10

Tôi bắt đầu cố gắng tiêu thụ các Dịch vụ Web SOAP bằng tay như bạn mô tả - có những cách tốt hơn.

Có thư viện ở đó sẽ thực hiện tất cả công việc cho bạn - không cần phải phân tích cú pháp bất kỳ thứ gì bằng tay.

Khám phá JAX-WS. Hầu hết các IDE hiện đại (Chắc chắn NetbeansEclipse) cũng cung cấp hỗ trợ điểm và nhấp để xây dựng các ứng dụng dịch vụ web được cung cấp cho WSDL.

Vấn đề tiềm năng lớn nhất trên tuyến đường này là nếu không có WSDL hoặc WSDL sai, trong trường hợp công cụ tôi liên kết có thể gặp khó khăn. Điều an toàn tiếp theo sẽ là sử dụng một trình phân tích cú pháp XML như SAX & DOM của JAXP (chúng nằm ngay trong JRE của bạn) để phân tích phản hồi và sau đó đi bộ các cấu trúc dữ liệu có liên quan.

Cuối cùng, bạn có thể sử dụng phân tách chuỗi hoặc phân đoạn nhưng đường dẫn đó nằm rất nhiều đau tiềm ẩn - có nhiều thông số XML hơn thẻ lồng nhau.

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