您好,欢迎访问一九零五行业门户网

解析rss问题的总结

try{ org.dom4j.io.saxreader saxreader = new org.dom4j.io.saxreader(); org.dom4j.document document = saxreader.read(rssurl); org.dom4j.element channel = (org.dom4j.element) document.getrootelement().element("channel"); int index =0; for (java.util.iterator i = channel.elementiterator("item"); i.hasnext();){ if(index+1>rsstable.rows.length){ break; } org.dom4j.element element = (org.dom4j.element) i.next(); string title = element.elementtext("title"); string link = element.elementtext("link"); string pubdate = element.elementtext("pubdate"); string source = element.elementtext("source"); ci.adp.datarow rssrow = rsstable.getdatarowbyindex(index); rssrow.setvalue("title", title); rssrow.setvalue("link", link); rssrow.setvalue("pubdate", pubdate); rssrow.setvalue("source", source); /* system.out.println("title标题: " + title); system.out.println("link链接: " + link); system.out.println("pubdate发布时间: " +pubdate); system.out.println("source来源: " + source); */ index++; } }catch (exception e) { e.printstacktrace(); }
折腾了一上午,终于换一种方式搞定了。
上面这种dom4j方式,在我本机环境(windows+weblogic10+jdk1.6)下没问题,
放到服务器上(linux5.4 x64+weblogic10+jdk1.6)上,始终都报这个错:
[oracle@ablw010215 bin]$ warning: caught exception attempting to use sax to load a sax xmlreader warning: exception was: java.lang.classcastexception: com.sun.org.apache.xerces.internal.parsers.xincludeawareparserconfiguration warning: i will print the stack trace then carry on using the default sax parser java.lang.classcastexception: com.sun.org.apache.xerces.internal.parsers.xincludeawareparserconfiguration at org.xml.sax.helpers.xmlreaderfactory.loadclass(xmlreaderfactory.java:199) at org.xml.sax.helpers.xmlreaderfactory.createxmlreader(xmlreaderfactory.java:150) at org.dom4j.io.saxhelper.createxmlreader(saxhelper.java:83) at org.dom4j.io.saxreader.createxmlreader(saxreader.java:894) at org.dom4j.io.saxreader.getxmlreader(saxreader.java:715) at org.dom4j.io.saxreader.read(saxreader.java:435) at org.dom4j.io.saxreader.read(saxreader.java:321) at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspservice(__iframearticlecontent.java:100) at weblogic.servlet.jsp.jspbase.service(jspbase.java:35) at weblogic.servlet.internal.stubsecurityhelper$servletserviceaction.run(stubsecurityhelper.java:227) at weblogic.servlet.internal.stubsecurityhelper.invokeservlet(stubsecurityhelper.java:125) at weblogic.servlet.internal.servletstubimpl.execute(servletstubimpl.java:300) at weblogic.servlet.internal.tailfilter.dofilter(tailfilter.java:27) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at ci.filter.setcharacterencodingfilter.dofilter(setcharacterencodingfilter.java:107) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.wraprun(webappservletcontext.java:3715) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.run(webappservletcontext.java:3681) at weblogic.security.acl.internal.authenticatedsubject.doas(authenticatedsubject.java:321) at weblogic.security.service.securitymanager.runas(securitymanager.java:120) at weblogic.servlet.internal.webappservletcontext.securedexecute(webappservletcontext.java:2277) at weblogic.servlet.internal.webappservletcontext.execute(webappservletcontext.java:2183) at weblogic.servlet.internal.servletrequestimpl.run(servletrequestimpl.java:1454) at weblogic.work.executethread.execute(executethread.java:209) at weblogic.work.executethread.run(executethread.java:178) org.dom4j.documentexception: sax2 driver class weblogic.xml.jaxp.registryxmlreader does not implement xmlreader nested exception: sax2 driver class weblogic.xml.jaxp.registryxmlreader does not implement xmlreader at org.dom4j.io.saxreader.read(saxreader.java:484) at org.dom4j.io.saxreader.read(saxreader.java:321) at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspservice(__iframearticlecontent.java:99) at weblogic.servlet.jsp.jspbase.service(jspbase.java:35) at weblogic.servlet.internal.stubsecurityhelper$servletserviceaction.run(stubsecurityhelper.java:227) at weblogic.servlet.internal.stubsecurityhelper.invokeservlet(stubsecurityhelper.java:125) at weblogic.servlet.internal.servletstubimpl.execute(servletstubimpl.java:300) at weblogic.servlet.internal.tailfilter.dofilter(tailfilter.java:27) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at ci.filter.setcharacterencodingfilter.dofilter(setcharacterencodingfilter.java:107) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.wraprun(webappservletcontext.java:3715) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.run(webappservletcontext.java:3681) at weblogic.security.acl.internal.authenticatedsubject.doas(authenticatedsubject.java:321) at weblogic.security.service.securitymanager.runas(securitymanager.java:120) at weblogic.servlet.internal.webappservletcontext.securedexecute(webappservletcontext.java:2277) at weblogic.servlet.internal.webappservletcontext.execute(webappservletcontext.java:2183) at weblogic.servlet.internal.servletrequestimpl.run(servletrequestimpl.java:1454) at weblogic.work.executethread.execute(executethread.java:209) at weblogic.work.executethread.run(executethread.java:178) nested exception: java.lang.classcastexception: com.sun.org.apache.xerces.internal.parsers.xincludeawareparserconfiguration at org.dom4j.io.saxhelper.createxmlreader(saxhelper.java:98) at org.dom4j.io.saxreader.createxmlreader(saxreader.java:894) at org.dom4j.io.saxreader.getxmlreader(saxreader.java:715) at org.dom4j.io.saxreader.read(saxreader.java:435) at org.dom4j.io.saxreader.read(saxreader.java:321) at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspservice(__iframearticlecontent.java:100) at weblogic.servlet.jsp.jspbase.service(jspbase.java:35) at weblogic.servlet.internal.stubsecurityhelper$servletserviceaction.run(stubsecurityhelper.java:227) at weblogic.servlet.internal.stubsecurityhelper.invokeservlet(stubsecurityhelper.java:125) at weblogic.servlet.internal.servletstubimpl.execute(servletstubimpl.java:300) at weblogic.servlet.internal.tailfilter.dofilter(tailfilter.java:27) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at ci.filter.setcharacterencodingfilter.dofilter(setcharacterencodingfilter.java:107) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.wraprun(webappservletcontext.java:3715) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.run(webappservletcontext.java:3681) at weblogic.security.acl.internal.authenticatedsubject.doas(authenticatedsubject.java:321) at weblogic.security.service.securitymanager.runas(securitymanager.java:120) at weblogic.servlet.internal.webappservletcontext.securedexecute(webappservletcontext.java:2277) at weblogic.servlet.internal.webappservletcontext.execute(webappservletcontext.java:2183) at weblogic.servlet.internal.servletrequestimpl.run(servletrequestimpl.java:1454) at weblogic.work.executethread.execute(executethread.java:209) at weblogic.work.executethread.run(executethread.java:178) nested exception: java.lang.classcastexception: com.sun.org.apache.xerces.internal.parsers.xincludeawareparserconfiguration at org.dom4j.io.saxhelper.createxmlreader(saxhelper.java:98) at org.dom4j.io.saxreader.createxmlreader(saxreader.java:894) at org.dom4j.io.saxreader.getxmlreader(saxreader.java:715) at org.dom4j.io.saxreader.read(saxreader.java:435) at org.dom4j.io.saxreader.read(saxreader.java:321) at jsp_servlet._ajax._comm._bbs.__iframearticlecontent._jspservice(__iframearticlecontent.java:100) at weblogic.servlet.jsp.jspbase.service(jspbase.java:35) at weblogic.servlet.internal.stubsecurityhelper$servletserviceaction.run(stubsecurityhelper.java:227) at weblogic.servlet.internal.stubsecurityhelper.invokeservlet(stubsecurityhelper.java:125) at weblogic.servlet.internal.servletstubimpl.execute(servletstubimpl.java:300) at weblogic.servlet.internal.tailfilter.dofilter(tailfilter.java:27) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at ci.filter.setcharacterencodingfilter.dofilter(setcharacterencodingfilter.java:107) at weblogic.servlet.internal.filterchainimpl.dofilter(filterchainimpl.java:57) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.wraprun(webappservletcontext.java:3715) at weblogic.servlet.internal.webappservletcontext$servletinvocationaction.run(webappservletcontext.java:3681) at weblogic.security.acl.internal.authenticatedsubject.doas(authenticatedsubject.java:321) at weblogic.security.service.securitymanager.runas(securitymanager.java:120) at weblogic.servlet.internal.webappservletcontext.securedexecute(webappservletcontext.java:2277) at weblogic.servlet.internal.webappservletcontext.execute(webappservletcontext.java:2183) at weblogic.servlet.internal.servletrequestimpl.run(servletrequestimpl.java:1454) at weblogic.work.executethread.execute(executethread.java:209) at weblogic.work.executethread.run(executethread.java:178)
<2012-11-8 上午10时56分08秒 cst> <warning> <socket> <bea-000449> <closing socket as no data read from it on 10.16.99.18:53,874 during the configured idle timeout of 5 secs>
<2012-11-8 上午10时56分08秒 cst> <warning> <socket> <bea-000449> <closing socket as no data read from it on 10.16.99.18:53,875 during the configured idle timeout of 5 secs>
在weblogic.xml加配置文件、加lib包等等都不起作用,换成这个就好了(依赖lib在我上传的资源中,完全免费):
try { url url = new url(rss); // 读取rss源 xmlreader reader = new xmlreader(url); system.out.println("rss源的编码格式为:" + reader.getencoding()); syndfeedinput input = new syndfeedinput(); syndfeed feed = input.build(reader); // 得到syndfeed对象,即得到rss源里的所有信息 list entries = feed.getentries(); // 得到rss新闻中子项列表 int index =0; for (int i = 0; i < entries.size(); i++) { // 循环得到每个子项信息 if(index+1>rsstable.rows.length){ break; } syndentry entry = (syndentry) entries.get(i); /* system.out.println("标题:" + entry.gettitle()); system.out.println("连接地址:" + entry.getlink()); syndcontent description = entry.getdescription(); system.out.println("标题简介:" + description.getvalue()); system.out.println("发布时间:" + entry.getpublisheddate()); // 以下是rss源可先的几个部分 system.out.println("标题的作者:" + entry.getauthor()); */ ci.adp.datarow rssrow = rsstable.getdatarowbyindex(index); rssrow.setvalue("title", entry.gettitle()); rssrow.setvalue("link", entry.getlink()); rssrow.setvalue("pubdate", entry.getpublisheddate()); rssrow.setvalue("source", entry.getauthor()); /* // 此标题所属的范畴 list categorylist = entry.getcategories(); if (categorylist != null) { for (int m = 0; m < categorylist.size(); m++) { syndcategory category = (syndcategory) categorylist .get(m); system.out.println("此标题所属的范畴:" + category.getname()); } } */ index++; /* // 得到流媒体播放文件的信息列表 list enclosurelist = entry.getenclosures(); if (enclosurelist != null) { for (int n = 0; n < enclosurelist.size(); n++) { syndenclosure enclosure = (syndenclosure) enclosurelist .get(n); system.out.println("流媒体播放文件:" + entry.getenclosures()); } } */ } } catch (exception e) { e.printstacktrace(); }
org.dom4j.io.saxreader saxreader = new org.dom4j.io.saxreader();org.dom4j.document document = saxreader.read(rssurl);org.dom4j.element channel = (org.dom4j.element) document.getrootelement().element("channel"); int index =0; for (java.util.iterator i = channel.elementiterator("item"); i.hasnext();){ if(index+1>rsstable.rows.length){ break; } org.dom4j.element element = (org.dom4j.element) i.next(); string title = element.elementtext("title"); string link = element.elementtext("link"); string pubdate = element.elementtext("pubdate"); string source = element.elementtext("source"); ci.adp.datarow rssrow = rsstable.getdatarowbyindex(index); rssrow.setvalue("title", title); rssrow.setvalue("link", link); rssrow.setvalue("pubdate", pubdate); rssrow.setvalue("source", source); /* system.out.println("title标题: " + title); system.out.println("link链接: " + link); system.out.println("pubdate发布时间: " +pubdate); system.out.println("source来源: " + source); */ index++; }
以上就是解析rss问题的总结的详细内容。
其它类似信息

推荐信息