Java XmlReader在所有情况下都返回null
我有一个代码,可以从activemq获取dat并在Rss提要上显示数据,但是代码没有给我提要上的数据,我得到一个空列表,原因似乎是XmlReader=null;我已经设置了这行数据,在整个执行过程中,reder似乎为空Java XmlReader在所有情况下都返回null,java,xml-parsing,activemq,xmlreader,Java,Xml Parsing,Activemq,Xmlreader,我有一个代码,可以从activemq获取dat并在Rss提要上显示数据,但是代码没有给我提要上的数据,我得到一个空列表,原因似乎是XmlReader=null;我已经设置了这行数据,在整个执行过程中,reder似乎为空 public List<RssFeedMessage> readRssFeeds(@PathVariable String sourceName) { XmlReader reader = null; RssFeedMessage rssFeedMes
public List<RssFeedMessage> readRssFeeds(@PathVariable String sourceName) {
XmlReader reader = null;
RssFeedMessage rssFeedMessage = null;
StringBuffer feedUrl = new StringBuffer("http://").append(ipaddress).append(":")
.append(port).append("/admin/queueBrowse/").append(sourceName).append("?view=rss&feedType=rss_2.0");
List<RssFeedMessage> rssFeedMessages = new ArrayList<RssFeedMessage>();
try {
URL url = new URL(feedUrl.toString());
reader = new XmlReader(url);
SyndFeed feedMsg = new SyndFeedInput().build(reader);
List<SyndEntry> feedEntries = feedMsg.getEntries();
for (SyndEntry entry : feedEntries) {
rssFeedMessage = new RssFeedMessage();
rssFeedMessage.setTitle(entry.getTitle());
rssFeedMessage.setDescription(entry.getDescription().getValue());
rssFeedMessage.setDate(OptimerUtil.simpleDateHourTimeInd.format(entry.getPublishedDate()));
rssFeedMessages.add(rssFeedMessage);
}
} catch(IOException e){
e.printStackTrace();
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (FeedException e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
}
}
}
return rssFeedMessages;
}
}
public List readRssFeeds(@PathVariable String sourceName){
XmlReader=null;
RssFeedMessage RssFeedMessage=null;
StringBuffer feedUrl=新的StringBuffer(“http:/”).append(ipaddress).append(“:”)
.append(port).append(“/admin/queueBrowse/”).append(sourceName).append(“?view=rss&feedType=rss_2.0”);
List rssFeedMessages=new ArrayList();
试一试{
URL=新URL(feedUrl.toString());
reader=新的XmlReader(url);
SyndFeed feedMsg=新建SyndFeedInput().build(读取器);
List feedEntries=feedMsg.getEntries();
用于(同步条目:feedEntries){
rssFeedMessage=新的rssFeedMessage();
rssFeedMessage.setTitle(entry.getTitle());
rssFeedMessage.setDescription(entry.getDescription().getValue());
setDate(OptimerUtil.simpleDateHourTimeInd.format(entry.getPublishedDate());
添加(rssFeedMessage);
}
}捕获(IOE异常){
e、 printStackTrace();
}捕获(IllegalArgumentException e){
e、 printStackTrace();
}捕获(FEEDE){
e、 printStackTrace();
}最后{
if(读卡器!=null){
试一试{
reader.close();
}捕获(IOE异常){
}
}
}
返回rssfeed消息;
}
}
它只是退出,因为在reader=newxmlreader(url)上出现i get io异常时,reader仍然为null
检查
feedUrl
行中包含的内容URL=newurl(feedUrl.toString())代码>
字符串可能有问题。
另外,要使您管理字符串等于null
或不可访问等条件,在对其进行解析之前请发布异常堆栈跟踪。如果你打开一个浏览器,将内置的url粘贴到一个地址中,它能工作吗?@OldCurmudgeon它向我展示了一堆我甚至不需要它包含的垃圾,如果我在浏览器上尝试它,它会给我垃圾,XmlReader对象读取器总是空的,它根本不进入列表,跳转到io异常并打印stacktrace