[英]Spring Boot Server did not recognize the value of HTTP Header SOAPAction
我正在嘗試使用此Web服務,但正在使用SoapExeption
。
以下是我發送請求的方法。 如何在Spring Boot中解決此問題?
public class CalcClient extends WebServiceGatewaySupport {
private static final Logger LOGGER = LoggerFactory.getLogger(CalcClient.class);
private ObjectFactory objectFactory;
@Autowired
public void setObjectFactory(ObjectFactory objectFactory) {
this.objectFactory = objectFactory;
}
public JAXBElement<AddResponse> sendAndReceive() {
Add request = objectFactory.createAdd();
request.setIntA(12);
request.setIntB(12);
LOGGER.info("Sending request");
JAXBElement<AddResponse> response = (JAXBElement<AddResponse>) getWebServiceTemplate().marshalSendAndReceive("http://www.dneonline.com/calculator.asmx", request);
return response;
}
}
我在訪問此服務時遇到了同樣的問題,嘗試將AddResponse
綁定到JAXBElement
會收到錯誤消息。 您需要在代碼中設置soapAction
,如下所示,使用WebServiceMessageCallback
public AddResponse sendAndReceive() {
Add request = objectFactory.createAdd();
request.setIntA(12);
request.setIntB(12);
LOGGER.info("Sending request");
AddResponse response = (AddResponse) getWebServiceTemplate().marshalSendAndReceive("http://www.dneonline.com/calculator.asmx", request, new WebServiceMessageCallback() {
@Override
public void doWithMessage(WebServiceMessage webServiceMessage) throws IOException, TransformerException {
((SoapMessage)webServiceMessage).setSoapAction("http://tempuri.org/Add");
}
});
return response;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.