⑴ webservice啟動報錯"java.net.SocketException: error setting options"有什麼原因
java.net.SocketException如何才能更好的使用呢?這個就需要我們先要了解有關這個語言的相關問題。希望大家有所幫助。那麼我們就來看看有關java.net.SocketException的相關知識。
第1個異常是 java.net.BindException:Address already in use: JVM_Bind。
該異常發生在伺服器端進行new ServerSocket(port)(port是一個0,65536的整型值)操作時。異常的原因是以為與port一樣的一個埠已經被啟動,並進行監聽。此時用netstat –an命令,可以看到一個Listending狀態的埠。只需要找一個沒有被佔用的埠就能解決這個問題。
使用Java JDK中Java.net包控制UDP協議
通過Java.net.Socket 類抓取網頁內容
通過java.net.Socket類抓取網頁內容
通過Java.net包建立雙向通訊
用來訪問HTTP伺服器的仿java.net功能類
第2個異常是java.net.SocketException: Connection refused: connect。
該異常發生在客戶端進行 new Socket(ip, port)操作時,該異常發生的原因是或者具有ip地址的機器不能找到(也就是說從當前機器不存在到指定ip路由),或者是該ip存在,但找不到指定的埠進行監聽。出現該問題,首先檢查客戶端的ip和port是否寫錯了,如果正確則從客戶端ping一下伺服器看是否能ping通,如果能ping通(服務伺服器端把ping禁掉則需要另外的辦法),則看在伺服器端的監聽指定埠的程序是否啟動,這個肯定能解決這個問題。
第3個異常是java.net.SocketException: Socket is closed,
該異常在客戶端和伺服器均可能發生。異常的原因是己方主動關閉了連接後(調用了Socket的close方法)再對網路連接進行讀寫操作。
第4個異常是java.net.SocketException: (Connection reset或者Connect reset by peer:Socket write error)。
該異常在客戶端和伺服器端均有可能發生,引起該異常的原因有兩個,第一個就是如果一端的Socket被關閉(或主動關閉或者因為異常退出而引起的關閉),另一端仍發送數據,發送的第一個數據包引發該異常(Connect reset by peer)。另一個是一端退出,但退出時並未關閉該連接,另一端如果在從連接中讀數據則拋出該異常(Connection reset)。簡單的說就是在連接斷開後的讀和寫操作引起的。
第5個異常是java.net.SocketException: Broken pipe。
該異常在客戶端和伺服器均有可能發生。在第4個異常的第一種情況中(也就是拋出 SocketExcepton:Connect reset by peer:Socket write error後),如果再繼續寫數據則拋出該異常。前兩個異常的解決方法是首先確保程序退出前關閉所有的網路連接,其次是要檢測對方的關閉連接操作,發現對方關閉連接後自己也要關閉該連接。
編寫網路程序時需要注意的問題
第1個問題是要正確區分長、短連接。所謂的長連接是一經建立就永久保持。短連接就是在以下場景下,准備數據—>建立連接— >發送數據—>關閉連接。很多的程序員寫了多年的網路程序,居然不知道什麼是長連接,什麼是短連接。
第2個問題是對長連接的維護。所謂的維護包括兩個方面,首先是檢測對方的主動斷連(既調用 Socket的close方法),其次是檢測對方的宕機、異常退出及網路不通。這是一個健壯的通信程序必須具備的。檢測對方的主動斷連很簡單,主要一方主動斷連,另一方如果在進行讀操作,則此時的返回值只-1,一旦檢測到對方斷連,則應該主動關閉己方的連接(調用Socket的close方法)。
而檢測對方的宕機、異常退出及網路不通常用方法是用「心跳」,也就是雙方周期性的發送數據給對方,同時也從對方接收「心跳」,如果連續幾個周期都沒有收到對方心跳,則可以判斷對方或者宕機或者異常推出或者網路不通,此時也需要主動關閉己方連接,如果是客戶端可在延遲一定時間後重新發起連接。雖然Socket有一個keep alive選項來維護連接,如果用該選項,一般需要兩個小時才能發現對方的宕機、異常退出及網路不通。
第3個問題是處理效率問題。不管是客戶端還是伺服器,如果是長連接一個程序至少需要兩個線程,一個用於接收數據,一個用於發送心跳,寫數據不需要專門的線程,當然另外還需要一類線程(俗稱Worker線程)用於進行消息的處理,也就是說接收線程僅僅負責接收數據,然後再分發給Worker進行數據的處理。如果是短連接,則不需要發送心跳的線程,如果是伺服器還需要一個專門的線程負責進行連接請求的監聽。這些是一個通信程序的整體要求,具體怎麼設計你的程序,就看你自己的設計水平了。
⑵ 如圖,想要更改outlook web郵箱的地區和時區設置,提示針對郵箱的默認文件夾執行的本地化操作失敗。
通過使用exchange powershell命令來進行時區更改即可,打開EMS執行如下命令:
Set-MailboxRegionalConfiguration -Identity mailboxaddressname -TimeZone "Chinese Standard Time"
⑶ JAVA WEB 時差的顯示問題
根據你的想法,我想是否能通過JavaScript取得客戶端當前的時間,然後傳遞給伺服器進行比較,計算時間差。後來想,是否能通過JavaScript直接獲取時區,於是上網查了一下。的確,有人這么做。
也許傳遞客戶端時間可以通過Ajax的方式在本頁傳遞過去。沒有做過,只是一個想法。
你自己看看參考資料吧。
補充:
如果你想做國際化,乾脆在資料庫裡面保存的時間都是UTC的,這樣計算不同時區的時間時比較方便。
⑷ webSphere 服務報錯解決方法怎麼解決
你好,
1,要改埠,必須先啟動,然後在控制台改,手工改比較麻煩。
2,建議你重新建個profile就好了,用profilemanage就行。
⑸ cacti在日本伺服器上搭建出現時區錯誤
你的是VPS還是PHP空間?
如果是PHP空間的話,估計很難辦。因為cacti使用的是command模式的php來解析php文件。我們使用的web服務通常配置修改的不是命令行方式的php.ini文件。
因此,如果是VPS的話,查看你的命令行方式的PHP.INI文件,修改其中的timezone即可。
⑹ Web項目啟動時報錯,但是不影響運行和啟動
1、刪除原有resource包後,新建源文件夾,在新的文件夾下新建測試類,圖標一切正常。
(6)web時區報錯擴展閱讀:
Web項目啟動注意事項:
1、用戶將埠設為為80以後,tomcat會自動捨去埠號。
2、用戶做完如上操作以後,將webapps目錄下的項目刪除。不然會在tomcat中同時存在兩個相同的項目。
3、tomcat尋找文件路徑的時候會優先在webapps目錄下尋找,然後再去ROOT下尋找,如果存在同名的文件夾。
⑺ PHP中時區的一點疑惑:PHP CLI application 和PHP web application的區別,希望得到解答。
在php.ini中按你那樣改就可以糾正時區。Asia/Shanghai,chongqing,hk等等八區都行。
關鍵在運行和調試中,php解釋器必須統一、一致地讀入這個php.ini。這涉及到你的apache和zend studio的配置。比如zend studio自帶幾個php解釋器,就需要改成和apache用一個解釋器和同一個php.ini。
⑻ windows2003企業版web伺服器的日誌時間與本機時間不一致,這是什麼原因如何使其一致請細說
我們通過一個很小的設置讓IIS日誌時間使用伺服器設置的時區的時間,我們使用的北京時間也就是+8區,一般來說安裝操作系統的時候已經設置過了。下面對IIS進行設置(以Windows2003+IIS6為例):
打開「Internet 信息服務(IIS)管理器」,點擊「Internet信息服務」、「本地計算機」、「網站」,在需要的網站上(如果要設置所有的網站,則直接在「網站」上)右擊「屬性」,打開網站屬性。
在「網站」標簽下找到「活動日誌格式」,點擊其後的「屬性」,打開IIS日誌屬性
在IIS日誌屬性「常規」標簽下,找到「文件命名和創建使用當地時間」,在其前打勾。
點擊兩次「確定」退出「Internet 信息服務(IIS)管理器」。
此時,IIS日誌就已經是使用當地時間了
⑼ 用myeclipse運行一個web程序總是報錯該怎麼解決
用myeclipse運行一個web程序總是報錯的解決方法:
1、當你有多個跳轉的頁面的語句時候,好好檢查一下,當轉發或者重定向的時候,需要在後加一個retrun 即可。
2、伺服器中不允許多次跳轉,否則會下面這個錯誤。
3、因為伺服器端使用sendRedirect跳轉到客戶端的時候,不能在使用req.getRequestDispatcher("跳轉的頁面").forward(req,reqs);跳轉。
4、所以在跳轉之後,return就不會往下執行。
⑽ 客戶端調用 webservice時報錯 請求因 HTTP 狀態 504 失敗: Connection Timed Out。
不斷增加時間的。或者減少後台的響應時間。