您好我正在嘗試在春季通過@RestController 實作通過SOAP 代理的傳遞。為此,我以下列方式映射了一個休息控制器:
@RestController
class MyProxy {
@PostMapping(value = "/**")
public ResponseEntity<String> proxyPost(@RequestBody(required = false) String body, HttpServletRequest request) {}
}
常規 SOAP 請求正常。當通過代理發送 MTOM 型別的 SOAP 請求時,就會出現問題。然后彈簧因無法識別的內容型別而失敗。這是一個例外:
Caused by: org.springframework.web.multipart.MultipartException: Failed to parse multipart servlet request; nested exception is javax.servlet.ServletException: Unsupported Content-Type [multipart/related; type="application/xop xml"; boundary="uuid:dacf4733-80b4-41bc-b2e1-db69b6beadf6"; start="<[email protected]>"; start-info="text/xml"], expected [multipart/form-data]
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.handleParseFailure(StandardMultipartHttpServletRequest.java:124)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:115)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.<init>(StandardMultipartHttpServletRequest.java:88)
at org.springframework.web.multipart.support.StandardServletMultipartResolver.resolveMultipart(StandardServletMultipartResolver.java:122)
at org.springframework.web.servlet.DispatcherServlet.checkMultipart(DispatcherServlet.java:1205)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1039)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
... 60 common frames omitted
Caused by: javax.servlet.ServletException: Unsupported Content-Type [multipart/related; type="application/xop xml"; boundary="uuid:dacf4733-80b4-41bc-b2e1-db69b6beadf6"; start="<[email protected]>"; start-info="text/xml"], expected [multipart/form-data]
at org.eclipse.jetty.server.Request.getParts(Request.java:2407)
at javax.servlet.http.HttpServletRequestWrapper.getParts(HttpServletRequestWrapper.java:317)
at org.springframework.web.multipart.support.StandardMultipartHttpServletRequest.parseRequest(StandardMultipartHttpServletRequest.java:95)
... 66 common frames omitted
uj5u.com熱心網友回復:
當收到multipart/*
請求時,Spring 將其委托給配置的 Multipart 處理程式。這是默認啟用的,在這種情況下應該禁用。
spring.servlet.multipart.enabled=false
將上述內容添加到您的屬性應該禁用它并阻止決議,因此您可以在控制器中處理它。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/438155.html