首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SAX的问题

SAX的问题
EN

Stack Overflow用户
提问于 2010-10-13 21:25:47
回答 1查看 1.6K关注 0票数 0

我有下面的代码。

代码语言:javascript
复制
         System.setProperty("http.proxyHost","176.6.129.25") ;
             System.setProperty("http.proxyPort", "8080") ;
Authenticator.setDefault(new MyAuthenticator());
                //http://deadlock.netbeans.org/hudson/api/xml
            *URL url = new URL("http://in8301782d:8080/api/xml");*
            Document dom = new SAXReader().read(url);
            for( Element job : (List<Element>)dom.getRootElement().elements("job")) {
                System.out.println(String.format("Name:%s\tStatus:%s",
                    job.elementText("name"), job.elementText("color")));
            }

如果我用http://deadlock.netbeans.org/hudson/api/xml替换,这段代码可以工作,但它不能与http://in8301782d:8080/api/xml一起工作。事实上,如果我在浏览器中输入相同的东西,它就能正常工作。如果我将主机名替换为Ip地址,也不起作用。

我得到的异常如下所示。

代码语言:javascript
复制
*With in8301782d (machine name)* :

xception in thread "main" org.dom4j.DocumentException: http://in8301782d:8080/api/xml Nested exception: http://in8301782d:8080/api/xml
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.dom4j.io.SAXReader.read(SAXReader.java:291)
    at com.sg.hudson.ci.Main.main(Main.java:140)
Nested exception: 
java.io.FileNotFoundException: http://in8301782d:8080/api/xml
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1243)
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.dom4j.io.SAXReader.read(SAXReader.java:291)
    at com.sg.hudson.ci.Main.main(Main.java:140)

*With Ip (http://176.6.55.55:8080/api/xml):*

Exception in thread "main" org.dom4j.DocumentException: Server returned HTTP response code: 503 for URL: http://176.6.66.156:8080/api/xml Nested exception: Server returned HTTP response code: 503 for URL: http://176.6.66.156:8080/api/xml
    at org.dom4j.io.SAXReader.read(SAXReader.java:484)
    at org.dom4j.io.SAXReader.read(SAXReader.java:291)
    at com.sg.hudson.ci.Main.main(Main.java:140)
Nested exception: 
java.io.IOException: Server returned HTTP response code: 503 for URL: http://176.6.66.156:8080/api/xml
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1245)
    at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source)
    at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
    at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
    at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
    at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
    at org.dom4j.io.SAXReader.read(SAXReader.java:465)
    at org.dom4j.io.SAXReader.read(SAXReader.java:291)
    at com.sg.hudson.ci.Main.main(Main.java:140)
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-10-13 21:40:37

这似乎不是你的代码的问题。

在第一个异常中,SAX告诉您它找不到http://in8301782d:8080/api/xml -它不能到达这个URL。如果URL在您的浏览器中正常工作,则可能是代理设置有问题。

在第二个异常中,SAX报告服务器返回一个不成功的HTTP状态代码503,which (according to the HTTP specification) means

由于服务器暂时超载或维护,服务器当前无法处理该请求。这意味着这是一种暂时的情况,经过一段时间的延迟后将会得到缓解。

当然,位于此URL的应用程序也可能出于某些非标准原因向您发送HTTP 503。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3924159

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档