当同一个服务器请求可能返回两个不同的xml响应时,如何处理它?
我已经看过很多关于如何在一个响应中解组多个根元素的内容。我的问题有点不同。我需要联系的API设置有点奇怪。即使有错误,服务器也将返回200,但它将以XML格式返回错误消息,如下所示:当同一个服务器请求可能返回两个不同的xml响应时,如何处理它?,xml,jaxb,resttemplate,Xml,Jaxb,Resttemplate,我已经看过很多关于如何在一个响应中解组多个根元素的内容。我的问题有点不同。我需要联系的API设置有点奇怪。即使有错误,服务器也将返回200,但它将以XML格式返回错误消息,如下所示: <?xml version="1.0" encoding="UTF-8"?> <Error> <Number></Number> <Source></Source> <Description></Des
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Number></Number>
<Source></Source>
<Description></Description>
<HelpFile/>
<HelpContext/>
</Error>
然而,预期的反应更像是:
<?xml version="1.0" encoding="UTF-8"?>
<Response>
<Number></Number>
<LabelImage></LabelImage>
<Name></Name>
<Address1/>
<Address2></Address2>
<City></City>
<State></State>
<Zip></Zip>
<LabelSequenceNumber></LabelSequenceNumber>
<DropOff></DropOff>
<LogMessage/>
</Response>
我正试图弄清楚如何接受来自同一请求的任何一个响应
我使用JaxB和RestTemplate来处理这些请求和响应。我需要讨论的API是Rest和SOAP的某种糟糕组合,但我无法控制这一部分。我们通过为表示扩展响应的每个类创建一个接口来解决这个问题。我不知道为什么我以前没有想到这一点,当时我对JaxB的理解是不存在的。当接收到响应时,会检查是否有“Error”一词,如果找到,会将其解组到ErrorResponse类中,否则会将其解组到success响应中