gpt4 book ai didi

java - XML解析错误: junk after document element - REST

转载 作者:行者123 更新时间:2023-11-30 04:41:26 26 4
gpt4 key购买 nike

我正在开发一个 RESTful Web 服务,它将返回某人添加到我之前实现的提要列表中的 RSS 提要列表。

现在,如果我返回 TEXT_PLAIN 回复,则在浏览器中显示得很好,但当我尝试返回 APPLICATION_XML 回复时,我会收到以下错误:

XML 解析错误:文档元素后出现垃圾位置:http://localhost:8080/Assignment1/api/feedlist第 1 行,第 135 栏:SMH 热门标题http://feeds.smh.com.au/rssheadlines/top.xmlUTS 图书馆新闻http://www.lib.uts.edu.au/news/feed/all

这是代码 - 我无法弄清楚为什么它没有返回格式良好的 XML 页面(我还尝试使用新行和空格(缩进)格式化 XML 回复 - 当然这不起作用):

package au.com.rest;
import java.io.FileNotFoundException;
import java.io.IOException;

import javax.ws.rs.*;
import javax.ws.rs.core.*;
import au.edu.uts.it.wsd.*;


@Path("/feedlist")
public class RESTFeedService {

String feedFile = "/tmp/feeds.txt";
String textReply = "";
String xmlReply = "<?xml version=\"1.0\"?><feeds>";
FeedList feedList = new FeedListImpl();

@GET
@Produces(MediaType.APPLICATION_XML)
public String showXmlFeeds() throws FileNotFoundException, IOException
{

feedList.load(feedFile);
for (Feed f:feedList.list()){
xmlReply += "<feed><name>" + f.getName() + "</name>";
xmlReply += "<uri>" + f.getURI() + "</uri></feed></feeds>";
}

return xmlReply;
}

}

最佳答案

编辑:我现在发现了迫在眉睫的问题。您将关闭每个输入元素上的 feeds 元素:

for (Feed f:feedList.list()){
xmlReply += "<feed><name>" + f.getName() + "</name>";
xmlReply += "<uri>" + f.getURI() + "</uri></feed></feeds>";
}

最小的改变是:

for (Feed f:feedList.list()){
xmlReply += "<feed><name>" + f.getName() + "</name>";
xmlReply += "<uri>" + f.getURI() + "</uri></feed>";
}
xmlReply += "</feeds>";

...但您仍然应该应用下面的其余建议。

<小时/>

第一步 - 您需要进一步诊断问题。查看浏览器中的源代码以准确了解其提示的内容。您自己能看出 XML 中的问题吗?它看起来像什么?

在不知道您正在使用的其余框架的情况下,这看起来可能是一个与服务多个请求的单个实例有关的问题。由于某种原因,您有一个在方法中发生变化的实例变量。你为什么想这么做?如果为每个请求创建一个新的类实例,那应该不是问题 - 但我不知道情况是否如此。

作为第一个更改,请尝试移动此行:

String xmlReply = "<?xml version=\"1.0\"?><feeds>";

作为局部变量进入方法。

在那之后:

  • 将所有字段设为私有(private)
  • 避免在这样的循环中使用字符串连接
  • 更重要的是,不要手动构建 XML - 使用 XML API 来完成。 (内置的 Java API 不太好,但有很多替代方案。)
  • 考虑这些字段(如果有)中的哪一个确实是对象的状态,而不是应该是局部变量的东西。你的对象在逻辑上到底处于什么状态?

关于java - XML解析错误: junk after document element - REST,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12190828/

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