Неортодокс: RPC / кодированный клиент и сервер - PullRequest
0 голосов
/ 01 июля 2019

Итак, я понимаю, что это, вероятно, странный вопрос, и я не ожидаю такого большого ответа, но я протягиваю руку в надежде, что кто-то где-то найдет решение, с которым им тоже пришлось иметь дело.

Много лет назад мы разработали плагины для веб-сервисов клиентов (они выступают в роли сервера), и клиент для себя, чтобы мы к ним обращались, использовал протокол rpc / закодированный.Обновление до Java 11 означает, что мы больше не можем позволить себе некоторые предметы роскоши, которые ранее были устаревшими частями javax, и вместо этого мы сейчас находимся в проблеме.

У нас есть несколько десятков тысяч клиентов, и, как мыЕсли SaaS не пытается заставить их всех обновиться своевременно, это просто неосуществимо, поэтому нам нужно найти какое-то решение, где мы все еще можем обратиться к старым клиентам и новым клиентам (пользователям, которые берутпоследние версии плагина), не нарушая ничего.

Это означает, что мы должны иметь возможность использовать rpc / закодированные сообщения, и чтобы не открывать целую коробку червей на нашей стороне, мы должнысгенерируйте их тоже.

@SOAPBinding(style = Style.RPC, use = Use.ENCODED)
@WebService(endpointInterface = "com.example.rpc.ws.RpcService", targetNamespace = "http://www.example.com/rpcService")
public interface RpcService {

    @WebMethod
    String echo(String echoString);
}

Ниже приведен пример дряхлой настройки, которую мы имеем на стороне сервера (плагина), и того, с чем нам нужно было бы работать.

Было бы идеально, если бы мы могли, например, использовать Spring для замены всей старой веб-конфигурации и, возможно, использовать некоторые перехватчики для передачиrm стандарт rpc/literal до rpc/encoded при исходящей связи с клиентом и наоборот при работе на стороне сервера (плагина).

К сожалению, запись чего-либо в протоколе rpc/encoded кажется слишком ужасной даже дляпосмотри на.Есть ли простой метод конвертации, который я пропускаю?Библиотека из эпохи Бигоне, которая может это сделать?Я нашел трансформаторы от rpc/encoded до rpc/literal, но никак не наоборот.

Кто-нибудь может помочь?:)

...