我开发利用泽西下,Tomcat和TopLink在Java中RESTful Web服务。我的一个要求替换的XML数据,我的“客户”的服务回报与实际的XML数据的资源链接(人)(该人资源链接返回)。为了实现这一目标,同时呼吁(GET方法)的客户服务我从“人”的资源输出的XML和删除XML数据的<person>
和</person>
标签(因为我的“客户”服务具有属性“人”我想在这里粘贴这个XML数据),并在“客户”资源的“人物”属性中设置此XML数据。转换XML字符串转换为有效的XML在泽西XML输出
这里是我的输出: 输出从客户服务返回:
<customer>
<person>http://localhost:8080/xxxx/resources/person/JONESTD</person>
<xxx>...... </xxx>
<xxx>...... </xxx>
......
......
......
</customer>
输出从客户服务返回时,我使用的查询字符串复合=人(来代替实际数据 人资源URL),而调用此服务:
<customer>
<person><namePrefix>Mr.</namePrefix> <nameFirst>Timothy</nameFirst>
<nameLast>Jones</nameLast> <nameMiddle>D.</nameMiddle> <nameSuffix/>
<nameDisplayInformal>Timothy D. Jones</nameDisplayInformal> <nameDisplayFormal>Mr.
Timothy D. Jones</nameDisplayFormal> <nameSortedInformal>Jones, Timothy
D.</nameSortedInformal> <nameSortedFormal>Timothy, Jones D. Mr.</nameSortedFormal>
<username>JONESTD</username> <emailAddress>[email protected]</emailAddress> </person>
<xxx>...... </xxx>
<xxx>...... </xxx>
......
......
......
</customer>
正如你看到的,我在客户资源的人属性设置的XML字符串不正确缩进。如果我查看“查看源文件”,它显示了这个输出是这样的:
<customer>
<namePrefix>Mr.</namePrefix>
<nameFirst>Timothy</nameFirst>
<nameLast>Jones</nameLast> <nameMiddle>D.</nameMiddle>
<nameSuffix/> <nameDisplayInformal>Timothy D.
Jones</nameDisplayInformal> <nameDisplayFormal>Mr. Timothy D.
Jones</nameDisplayFormal> <nameSortedInformal>Timothy, Jones
D.</nameSortedInformal> <nameSortedFormal>Timothy, Jones D.
Mr.</nameSortedFormal> <username>JONESTD</username>
<emailAddress>[email protected]</emailAddress>
<xxx>...... </xxx>
<xxx>...... </xxx>
.......
.......
.......
</customer>
我只在我的“人”属性设置的人XML字符串看到这个<
和>
。我试过几件事情(包括StringEscapeUtils.unescapeHtml)到<
和>
转换成<
和>
(正确的XML)。但没有为我工作。你能否给我一些关于如何解决这个问题的想法?