Spring Boot Server无法识别HTTP Header SOAPAction的值

问题描述:

我试图使用此web-service但我得到SoapExeptionSpring Boot Server无法识别HTTP Header SOAPAction的值

以下是我发送请求的方法。我怎样才能解决这个问题在春季启动?

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; 
    } 
} 

我有同样的问题访问该服务,你会得到一个错误试图绑定AddResponseJAXBElement。您需要在您的代码中设置您的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; 
}