我使用了兩個節點,一個是從IDE(Intellij IDEA)啓動計算,另一個是已經在控制檯啓動(啓用遠程調試)的另一個節點。我正在從IDE進行調試。PrintWriter在點燃中的神祕
我沒有使用peerClassLoading,我已經將jar放在控制檯節點的庫中。
有一行代碼:System.out.println(x);
- 在兩種打印都很好。但以下幾行:
getPrintWriter().println(x);
getPrintWriter().flush();
只能在從IDE啓動的節點上工作。 PrintWriter包裝一個System.out。控制檯節點在刷新期間拋出IOException - '文件句柄無效'。
這裏是堆棧跟蹤的截圖:
,這裏是與控制檯節點的代碼的相關部分:
提出以下建議,我重置了打印作者,問題已解決。下面是截圖:
序列化語境
下面是一個啓動的點火計算的部分代碼:
對於控制檯JVM上的節點ConsoleClient
獲取seriali zed等包含的類(命令,監聽器和他們的打印作家等)。在列表clients
中,所有ConsoleClient
對象都將它們的打印編寫器作爲System.out
的包裝器,因此理想情況下,不需要可運行的標記塊。請注意,如果刪除了此標記的塊,則IDE節點將正確打印,但不會打印控制檯節點。
你能展示完整的痕跡嗎? –