2011-03-21 232 views
2
java.io.IOException: Server returned HTTP response code: 500 for URL: http://ww 
.huadt.com.cn/zh-cn/i/l/@[email protected]@[email protected]@[email protected]$GPRMC,065 
48.000,A,3959.8587,N,11617.2447,E,0.00,55.32,210311,,,A*[email protected]@ 
     at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown S 
urce) 
     at hdt.SendCmdToP.Sendplatform(SendCmdToP.java:67) 
     at hdt.SendCmdToP.process(SendCmdToP.java:198) 
     at hdt.SendCmdToP.run(SendCmdToP.java:131) 
java.lang.NullPointerException 
     at hdt.SendCmdToP.Sendplatform(SendCmdToP.java:91) 
     at hdt.SendCmdToP.process(SendCmdToP.java:198) 
     at hdt.SendCmdToP.run(SendCmdToP.java:131) 

出現指針,500與錯誤關閉異常,防火牆關係?如果不是,它是代碼問題?請幫助大家看看如何解決問題。 謝謝。服務器返回的HTTP響應代碼:500用於URL

回答

0

你不清楚你在日誌中顯示什麼 - 這看起來像兩個單獨的例外給我。是否有可能記錄第一個異常(表示服務器錯誤)但忽略它,並試圖繼續?這可能會在稍後導致NullPointerException。如果發現異常並且不重新拋出異常(或不同的異常),則需要真正處理異常 - 其餘代碼需要適當地工作。

我認爲你需要在三個方面的工作:

  • 檢查我瞭解的情況是正確的。瞭解爲什麼你有兩個例外記錄。
  • 找出爲什麼Web服務器無法返回該URL的數據。如果您擁有其他服務器,則應查看其日誌。如果它是另一個Java服務器,則可能是500表示未處理的異常。
  • 修復代碼,以便更好地處理Web服務器故障 - 即使一個錯誤不會導致另一個錯誤。也許你的代碼應該簡單地不趕上IOException開始,但允許它被傳播到堆棧上的一些頂級處理程序,它將記錄它並使整體操作以適當的方式失敗? (這取決於你正在運行的應用程序的類型,當然。)
+0

你的意思是我因爲在第一個異常,而不是拋出,所以會造成異常指針?但程序錯誤是兩個在一起發生的,因爲我是新手,不是很理解,所以只是發佈。所以我接下來要找出第一個異常點,然後處理是? – user617162 2011-03-21 07:12:26

+0

@ user617162:您需要解決*兩個*問題。修復你的錯誤處理,因爲*總是* Web請求失敗的可能性,然後找出導致500錯誤開始的原因。 – 2011-03-21 07:14:24

0

首先你需要'www'而不是'WW'在你的網址。其次,當你做出修正網址的請求,捲曲你會得到一個內部錯誤消息:

Internal Error

+0

由於我的錯誤複製了一個w,可能不再有問題了,但還是謝謝。 – user617162 2011-03-21 07:20:07

0

500響應表示服務器檢測到內部錯誤。可能有許多原因。

查找有關導致錯誤的信息的最佳位置是服務器日誌。但是,如果失敗,那麼URLConnection對象的「錯誤」流中可能會有一些額外的診斷信息。嘗試打開並將其內容複製到標準輸出或記錄器。

或者只是在您的Web瀏覽器中訪問URL或使用wget或curl,然後查看它向您顯示的錯誤消息。

(您必須謹慎使用其他工具,因爲可以想象問題是由HTTP請求標頭中的某些內容引起的......而這些可能取決於您用於獲取URL的工具)

+0

我會盡力找到日誌信息,然後做研究和修改,謝謝。 – user617162 2011-03-21 07:17:52

0

Web服務器(運行Web站點)遇到意外情況,無法滿足客戶端訪問請求的URL的請求。

基本上出現了問題,但是服務器在對客戶端的響應中不能更具體地說明錯誤情況。除了通知客戶端的500錯誤之外,Web服務器還應該生成某種內部錯誤日誌,以提供有關錯誤的更多詳細信息。 Web服務器站點的運營商需要定位和分析這些日誌。

相關問題