簡體   English   中英

Spring Boot Server無法識別HTTP標頭SOAPAction的值

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM