Неортодокс: 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
трансформаторы, но никак не наоборот.
Кто-нибудь может помочь?:)