Я преобразую программу Delphi 2007 в Delphi XE2 и у меня возникла проблема со следующим сообщением об ошибке:
Невозможно получить конечную точку URL для службы / порта "/" из WSDL 'http://.....'
Служба, к которой я подключаюсь, написана на Delphi 2007.
В 2007 году она компилируется и работает без проблем.На XE2 с тем же кодом он падает с ошибкой.
Я попытался повторно импортировать интерфейс, используя новый импортер WSDL с установленными значениями по умолчанию, но без радости.
Я также попытался установитьИмена портов и служб, а ошибка не устранена.Не уверен, какая информация полезна, но, насколько я могу судить, она подключается.
Это операция метода, который я использую
<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>
Это сообщение:
<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>
Помимо импорта WSDL, добавления HTTPRIO и вызова метода с
(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
Я не думаю, что я делаю что-то еще, и, как я говорю, работает тот же кодна Delphi 2007.