gpt4 book ai didi

jakarta-ee - SOAP 不支持的媒体异常 text/plain 支持的是 : [text/xml]

转载 作者:行者123 更新时间:2023-12-04 13:31:25 30 4
gpt4 key购买 nike

在我们的应用程序中,我们有以下代码行向服务发出 SOAP 请求

@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;
它曾经工作过,直到服务将其响应内容类型从 text/xml 更改为至 text/plain它仍然返回有效的 XML 但只是在 text/plain我不想彻底修改代码,因为它是一个非常古老和过时的遗留库,专门用于向服务发出请求(另外,我不确定是否有可以替换它的东西)
总而言之,我们得到以下异常:
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 ?

最佳答案

您可以使用 中间反向代理 (例如在客户端运行的本地)覆盖 text/xmltext/plainContent-Type 响应头 ,然后与该代理交谈,而不是与服务器交谈。
例如您可以使用 httpdProxyPass/ProxyPassReverse指令(来自 mod_proxy 模块)
结合 Header set Content-Type "text/plain" (来自 mod_headers 模块)。
如果客户端无法配置为调用新域(例如 localhost),您可能需要添加 hosts文件条目将远程服务器的域解析为反向代理的绑定(bind)地址。但是反向代理仍然需要能够对远程服务器的原始地址进行 dns 解析,因此要使其工作至少两者之一(客户端或反向代理)可能需要 containerized .

关于jakarta-ee - SOAP 不支持的媒体异常 text/plain 支持的是 : [text/xml],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64866031/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com