2016-08-23 59 views
5

私はSpringブートSOAP Webサービスサンプルプロジェクトを使用してSOAP Webサービスを作成しています。次のコードを使用すると、動的に生成されたWSDLにOperationsが表示されます。SpringBoot SOAP webservice動的WSDL生成が動作しないRequestPayload要素からRequestサフィックスを削除する場合

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

しかし、私はこのように変更するにはrequest要素が必要です。

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

私はこのリンクをSpring web service dynamic wsdl not generating message for a schema element答えが同様の質問を見つけましたが、我々はAvailNotifRequestなどの要求要素の後に接尾辞リクエストを追加する必要がありますが、私は私の要求入力としてOTAHotelAvailNotifRQを使用したいと言います。 このようなリクエスト入力を変更すると、wsdlで操作が取得されないため、これをどのように使用できますか。 official Spring-WS documentationによれば

答えて

1

<ダイナミックWSDLは>規則を使用して、XSDスキーマからWSDLを構築します。これは、スキーマ内のすべての要素要素を反復処理し、すべての要素のメッセージを作成します。次に、定義された要求または応答サフィックスで終了するすべてのメッセージに対してWSDL操作を作成します。デフォルトの要求サフィックスはRequestです。デフォルトのレスポンスサフィックスはResponseですが、requestSuffix属性とresponseSuffix属性をそれぞれ< dynamic-wsdl />に設定することで変更できます。

は、言い換えれば、あなたはデフォルトのものとは異なる要求と応答の接尾辞を指定するためにDefaultWsdl11DefinitionsetRequestSuffixsetResponseSuffixを使用することができます。上記の場合、例えば:

wsdl11Definition.setRequestSuffix("RQ"); 
wsdl11Definition.setResponseSuffix("RS"); 
関連する問題