我們有一個基於Spring WS的(工作)SOAP Web服務,其中DefaultWsdl11Definition。Spring WS(DefaultWsdl11Definition)HTTP狀態碼,無效
這基本上是什麼樣子:
@Endpoint("name")
public class OurEndpoint {
@PayloadRoot(namespace = "somenamespace", localPart = "localpart")
public void onMessage(@RequestPayload SomePojo pojo) {
// do stuff
}
}
它是有線在春天,它是正確處理所有的SOAP請求。唯一的問題是該方法返回202接受。這是而不是呼叫者需要什麼,他寧願讓我們返回204否內容(或者如果那是不可能的空的200行)。
我們的其他端點有一個有效的響應對象,並返回200 OK。看來無效原因當可能更合適?
是否有可能在Spring WS中更改響應代碼?我們似乎無法找到正確的方法來做到這一點。
東西,我們嘗試和沒有工作:
- 更改返回類型:
- HttpStatus.NO_CONTENT
- org.w3c.dom.Element中< - 不接受
- 加入@ResponseStatus < - 這是爲MVC,而不是WS
任何想法?
202表示請求已被接受但處理未完成。我想這是由於'void'返回類型,因此DefaultMethodEndpointAdapter不會調用'handleMethodReturnValue',因爲沒有什麼可處理的。我想最簡單的方法返回200(或其他)是創建一個自定義的'SoapMessageDispatcher'並重新實現'receive'方法。您可能需要複製整個類(層次結構),因爲該類非常封閉(最終方法)。 –