2009-10-20 29 views
6

Đây có thể là câu hỏi dễ dàng cho bất kỳ ai có chuyên môn vừa phải với các dịch vụ web sử dụng Apache Axis.Cách nhận thông báo SOAP trong khi sử dụng máy khách được tạo bởi Axis 1.4 wsdl2java

Tôi có một ứng dụng khách dịch vụ web được tạo bởi wsdl2java trong Trục 1.4. Tôi đang viết các bài kiểm tra đơn vị cần truy cập vào thông báo SOAP thực tế, và so sánh với các lớp java phía máy khách được tạo ra bởi Axis. (đừng hỏi)

Làm thế nào tôi có thể truy xuất thông báo SOAP thực tế từ một phản hồi từ dịch vụ?

Từ những gì tôi có thể thu thập từ tìm kiếm xung quanh là tôi phải lấy MessageContext. Tôi đã thử một số thứ dọc theo các dòng này ...

MessageContext mc = MessageContext.getCurrentContext(); Thông báo chuỗi = mc.getCurrentMessage(). GetSOAPPartAsString();

Nhưng mc là null trong trường hợp này ....

Bất kỳ trợ giúp nào được đánh giá cao!

Trả lời

5
+1

Bạn có thể mở rộng câu trả lời không? Ngoài thối liên kết có thể xảy ra trong tương lai (yay, 6 năm!), Trang tại liên kết có rất nhiều mã và nó không rõ ràng ngay lập tức "làm thế nào nó được thực hiện". Vì vậy, một bản tóm tắt nhanh ở đây chỉ với đoạn mã có liên quan (không phải toàn bộ bức tường mã) sẽ rất hữu ích! – ADTC

+1

Vâng tôi sẽ nhận được ngay trên đó! – rshepherd

3

Khi _call đối tượng được điền gọi dòng dưới đây cho phép nó.

String request=_call.getMessageContext().getRequestMessage() .getSOAPPart().getEnvelope().toString();

Đối với phản ứng sử dụng dưới một

_call.getMessageContext().getResponseMessage() .getSOAPPart().getEnvelope().toString()

Call là một org.apache.axis.client.Call như bạn đã biết.

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