2016-08-23 26 views
5

Tôi đang tạo dịch vụ web SOAP bằng cách sử dụng dự án mẫu Khởi động Web SOAP của Spring Boot. Nếu tôi sử dụng mã theo dõi WSDL được tạo động sau đây cho thấy Hoạt động.SpringBoot SOAP webservice Thế hệ WSDL động không hoạt động Nếu xóa hậu tố Yêu cầu từ phần tử RequestPayload

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "AvailNotifRequest") 
@ResponsePayload 
public OTAHotelAvailNotifRS getAvailNotif(@RequestPayload AvailNotifRequest request) { 

Nhưng tôi cần phần tử yêu cầu thay đổi như thế này.

@PayloadRoot(namespace = NAMESPACE_URI, localPart = "OTAHotelAvailNotifRQ") 
@ResponsePayload 
public OTAHotelAvailNotifRS getOTAHotelAvailNotifRQ(@RequestPayload OTAHotelAvailNotifRQ request) { 

Tôi tìm thấy một câu hỏi tương tự vào liên kết này Spring web service dynamic wsdl not generating message for a schema element câu trả lời nói rằng chúng ta cần thêm hậu tố Yêu cầu sau khi yếu tố yêu cầu như AvailNotifRequest nhưng tôi muốn sử dụng OTAHotelAvailNotifRQ như là đầu vào yêu cầu của tôi. Làm thế nào tôi có thể sử dụng điều này bởi vì tôi không nhận được hoạt động trong wsdl khi tôi thay đổi yêu cầu đầu vào như thế này.

Trả lời

1

Theo official Spring-WS documentation:

Các < động-wsdl> xây dựng một WSDL từ một giản đồ XSD bằng cách sử dụng công ước. Nó lặp qua tất cả các phần tử phần tử được tìm thấy trong lược đồ và tạo một thông báo cho tất cả các phần tử. Tiếp theo, nó tạo ra hoạt động WSDL cho tất cả các thư kết thúc bằng hậu tố yêu cầu hoặc hậu tố được xác định. Hậu tố yêu cầu mặc định là Yêu cầu; hậu tố phản hồi mặc định là Response, mặc dù chúng có thể được thay đổi bằng cách thiết lập các thuộc tính requestSuffix và responseSuffix trên < dynamic-wsdl />, tương ứng.

Nói cách khác mà bạn có thể sử dụng setRequestSuffixsetResponseSuffix trên DefaultWsdl11Definition để chỉ định một request và response hậu tố khác nhau từ một mặc định. Trong trường hợp trên, ví dụ:

wsdl11Definition.setRequestSuffix("RQ"); 
wsdl11Definition.setResponseSuffix("RS"); 
Các vấn đề liên quan