Перенос устаревшего веб-сервера JAVA RPC SOAP Web Server на загрузку Spring
У меня есть требование перенести устаревший веб-сервер JAVA RPC/Encoded SOAP на весеннюю загрузку. Этот веб-сервер используется множеством клиентских приложений, и ожидается, что миграция будет беспроблемной для клиентов. Я попытался использовать подход Contract First для создания веб-сервера при весенней загрузке, но RPC/Encoded wsdl с ним не работает. Я попытался собрать немного вок для этого, но не нашел в Интернете соответствующей документации или руководств.
В моем случае допустимо даже внесение незначительных изменений в wsdl без какого-либо влияния на клиентское приложение. Например, вместо закодированного можно изменить тип на буквальный, если это не создаст проблемы в клиентском приложении, использующем эту веб-службу.
Мы будем очень благодарны за любое полное руководство. Ниже представлен файл wsdl.
<?xml version="1.0" encoding="UTF-8"?>
<definitions name="DataExchangeService" targetNamespace="http://auto.example.com/message" xmlns:tns="http://auto.example.com/message" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/">
<types/>
<message name="DateExchangeServiceIF_exchangeMessage">
<part name="String_1" type="xsd:string"/>
</message>
<message name="DateExchangeServiceIF_exchangeMessageResponse">
<part name="result" type="xsd:string"/>
</message>
<portType name="DateExchangeServiceIF">
<operation name="exchangeMessage" parameterOrder="String_1">
<input message="tns:DateExchangeServiceIF_exchangeMessage"/>
<output message="tns:DateExchangeServiceIF_exchangeMessageResponse"/>
</operation>
</portType>
<binding name="DateExchangeServiceIFBinding" type="tns:DateExchangeServiceIF">
<operation name="exchangeMessage">
<input>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://auto.example.com/message"/>
</input>
<output>
<soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" use="encoded" namespace="http://auto.example.com/message"/>
</output>
<soap:operation soapAction="https://auto.example.com/message/exchangeMessage"/>
</operation>
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="rpc"/>
</binding>
<service name="DataExchangeService">
<port name="DateExchangeServiceIFPort" binding="tns:DateExchangeServiceIFBinding">
<soap:address location="REPLACE_WITH_ACTUAL_URL"/>
</port>
</service>
</definitions>