Вы забыли указать действие SOAP перед вызовом веб-службы.Откройте файл WSDL и найдите операцию, которую вы пытаетесь вызвать.Вы должны увидеть что-то вроде этого:
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions ...>
...
<wsdl:binding ...>
...
<wsdl:operation name="OhMyGawd">
<soap:operation soapAction="http://oh.my.gawd"/>
...
</wsdl:operation>
</wsdl:binding>
...
Обратите внимание на значение soapAction
, в данном примере это http://oh.my.gawd.
Если вы используетеSpring Web Services, добавьте следующие строки:
@Autowired
private WebServiceTemplate webServiceTemplate;
public void run() {
ObjectFactory objectFactory = new ObjectFactory();
// Create the request payload
OhMyGawd ohMyGawd = objectFactory.createOhMyGawd();
ohMyGawd.setValue(...);
OhMyGawdResponse response = (OhMyGawdResponse) webServiceTemplate.marshalSendAndReceive(
ohMyGawd,
new SoapActionCallback("http://oh.my.gawd")
);
...
}
Примечание: кредиты на этот сайт https://myshittycode.come