Как заставить стороннюю библиотеку принимать text/plain как text/xml (СМЭВ)

В нашем проекте мы отправляем запросы на СМЭВ при помощи древней легаси библиотеки (voskhod)

public String getRequests(String namespaceForSmev3, String rootElementLocalName) throws Exception
{
        DigitalSignatureFactory.init("JCP");
        MessageExchangeEndpoint messageExchange = MessageExchangeEndpoint.create(smevUrl, "", keyStore.getPrivateKey(), keyStore.getCertificate());
        try
        {
            QName qName = new QName(namespaceForSmev3, rootElementLocalName);
            GetRequestResponse requestResponse = messageExchange.getRequest(qName);
            DOMResult domResult = new DOMResult();
            MessageExchangeEndpoint.getJAXBMarshaller().marshal(requestResponse, domResult);
            String elementToString = XmlUtils.elementToString(((Document)domResult.getNode()).getDocumentElement());
            messageExchange.ack(requestResponse);
            return elementToString;
        }
        catch (Exception e)
        {
            LOG.error("Error while getting requests", e);
            return "";
        }
}

Однако, сейчас получаем следующее исключение:

Error while getting requests
ru.voskhod.smev.message_exchange_service_client.WebServiceClientException: com.sun.xml.internal.ws.server.UnsupportedMediaException: Unsupported Content-Type: text/plain;charset=utf-8 Supported ones are: [text/xml]
  at ru.voskhod.smev.message_exchange_service_client.MessageExchangeEndpoint.getRequest(MessageExchangeEndpoint.java:457)

Связано оно с тем, что ответ сейчас отдается в text/plain, а не text/xml как это было раньше

Выглядит проблемный метод так (из интерфейса SMEVMessageExchangePortType)

@WebResult(
      name = "GetRequestResponse",
      targetNamespace = "urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1",
      partName = "parameters"
   )
   GetRequestResponse getRequest(@WebParam(name = "GetRequestRequest",targetNamespace = "urn://x-artefacts-smev-gov-ru/services/message-exchange/types/1.1",partName = "parameters") GetRequestRequest var1) throws InvalidContentException, SMEVFailureException, SenderIsNotRegisteredException, SignatureVerificationFaultException, UnknownMessageTypeException;

Вызывается это добро из класса MessageExchangeEndpoint

Возможно ли как-то подхачить метод, чтобы он принимал text/plain и обрабатывал также как text/xml?

Или надо переключаться на другую либу? Если да, то посоветуйте, пожалуйста


Ответы (0 шт):