2017-02-18 4 views
0

Я пытаюсь использовать этот web-service, но я получаю SoapExeption.Spring Boot Server не распознал значение HTTP Header SOAPAction

Ниже представлен мой метод отправки запроса. Как я могу исправить эту проблему в 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; 
    } 
} 

ответ

1

Я была такая же проблема с доступом к этой службе, вы получите сообщение об ошибке за попытку связать 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; 
} 

 Смежные вопросы

  • Нет связанных вопросов^_^