2014-02-27 60 views
3

我在遠程服務器& Web服務之間有一個Thrift連接.. Thrift接口使用0.9.0 thrift編譯器編譯。當我做勤儉節約調用到遠程服務器,它在遠程執行成功,但在客戶端 - 我看到以下錯誤:Thrift調用給出「未知結果」

org.apache.thrift.TApplicationException: PredictScoresNoPersist failed: unknown result

我查了一下網頁,並檢查所有的解決方案提到的 - 像在節儉的瓶子等不匹配。沒有運氣。請幫忙。

只是一點點背景,這是一個單線程REST客戶端。

+0

顯而易見的原因是,對PredictScoresNoPersist()方法的調用失敗並出現異常,這在服務IDL中沒有列出(這並不難,因爲在那個特定的cxase中,只有普通的沒有:https://github.com/sgdheeban/te/blob/master/ITargetingEngine.thrift)。不太明顯的問題是,導致服務器失敗的原因。聽起來不像是一個節儉問題。 – JensG

回答

8

該異常是在客戶端明確地拋出,從而該消息響應似乎正確運輸:

public Map<String,Double> recv_PredictScoresNoPersist() throws org.apache.thrift.TException 
    { 
     PredictScoresNoPersist_result result = new PredictScoresNoPersist_result(); 
     receiveBase(result, "PredictScoresNoPersist"); 
     if (result.isSetSuccess()) { 
     return result.success; 
     } 
     throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "PredictScoresNoPersist failed: unknown result"); 
    } 

僅有的兩個可能的原因我看到的是:

  • 服務器拋出(未捕獲的)例外
  • 您嘗試返回null結果,這與Thrift非法。
+2

+1 ^^:空引用正在通過。剛剛發現了錯誤。感謝您的快速幫助。 – dheeban