Неортодокс: RPC / кодированный клиент и сервер

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

Много лет назад мы разработали плагины для веб-сервисов клиентов (они выступают в роли сервера), и клиент для себя, чтобы мы к ним обращались, использовал протокол 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 для замены всей старой веб-конфигурации и, возможно, использовать некоторые перехватчики для преобразования стандарта rpc/literal чтобы rpc/encoded когда исходящие к клиентам, и наоборот, на стороне сервера (плагин).

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

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

0 ответов

Другие вопросы по тегам