Проблема с SAX - PullRequest
       15

Проблема с SAX

0 голосов
/ 13 октября 2010

У меня есть код ниже ..

         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. Infact Если я набираю то же самое в браузере, он работает .. Если я заменяю имя хоста на Ip адрес тоже не работает.

Исключение, которое я получаю, ниже.

*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)

1 Ответ

1 голос
/ 13 октября 2010

Похоже, это не проблема с вашим кодом.

В первом исключении SAX сообщает вам, что не может найти http://in8301782d:8080/api/xml - он не может достичь этого URL. Если URL-адрес работает в вашем браузере, возможно, ошибка в настройке прокси.

Во втором исключении SAX сообщает, что сервер возвращает неуспешный код состояния HTTP 503, , что (согласно спецификации HTTP) означает :

Сервер в настоящее время не может обработать запрос из-за временной перегрузки или обслуживания сервера. Подразумевается, что это временное состояние, которое будет смягчено после некоторой задержки.

Конечно, приложение, находящееся по этому URL, может отправлять вам HTTP 503 и по какой-то нестандартной причине.

...