java - 在 RestTemplate 解码期间忽略 xml 命名空间

标签 java xml spring xsd resttemplate

我正在通过 Spring RestTemplate 将 XML over HTTP 请求发送到外部网关,我正在接收返回的 XML 响应。

用于验证响应的 XSD 具有目标命名空间,但实际响应不包含命名空间前缀。我已经使用 XSD 生成了 Java 资源,因此我在从(解码过程中)获得响应时遇到错误,

ResponseEntity<Response> responseEntity = restTemplate.exchange(endpointURL, HttpMethod.POST, requestEntity,
                Response.class);

异常(exception)情况是:-

Exception in thread "main" javax.xml.bind.UnmarshalException: unexpected element (uri:"", local:"Response"). Expected elements are <{http://securetransport.dw/rcservice/xml}Response>

有什么方法可以跳过 Spring ResponseEntity 的命名空间检查吗?

最佳答案

如果您使用 jaxb-plugin 生成了绑定(bind),则应该有一个“package-info.java”。

例如:

@javax.xml.bind.annotation.XmlSchema(namespace = "someurl", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)

如果您从注释中删除 namespace ,它应该可以工作。

关于java - 在 RestTemplate 解码期间忽略 xml 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35908839/

相关文章:

java - 如何在java中通过JNDI连接MongoDB

java - 在 Selenium Webdriver 警报上单击“确定”

java - Android:以编程方式使背景波纹化

java - Controller 在 Spring-MVC 中反复调用自身

Java 8 流唯一整数

java - 包含分号分隔范围的字符串的正则表达式,例如 "3-5;9-13;15;20-49"(java)

java - 从 JAXB 迁移到 Castor 的简单方法?

php - 来自公共(public)源的 jQuery/PHP 验证

java - Spring集成+发送2个事件到kafka

java - Spring 安全示例