2014-02-23 54 views
0

我正在使用此API的Java Jersey REST API和網站。Rest API方法正在返回值,但仍然收到500錯誤

這是我的服務器端方法

@GET 
@Produces(MediaType.APPLICATION_JSON) 
public List<TreeViewModel> getTreeList() { 
    User user = User.getByCredentials("team", "team"); 
    List<TreeViewModel> list = user.getTreeViewModels(); 
    return list; 
} 

這是我的javascript要求

function requestTrees() { 
$.ajax({ 
    type: "GET", 
    url: window.api + "tree", 
    dataType: 'json', 
    beforeSend: function(xhr) { 
     xhr.setRequestHeader("Authorization", make_base_auth('team', 'team')); 
    }, 
    success: function(data) { 
     console.log('suc'); 
    }, 
    complete: function(jqxhr, txt_status) { 
     console.log('com'); 
    }, 
    failed: function(data) { 
     console.log('fai'); 
    } 
}); 

}

如果調試我的服務器的方法被調用,並返回列表。但是在客戶端,我收到一個500錯誤,表明服務器端有問題?

有什麼建議嗎? 在此先感謝。

+1

檢查您的控制檯輸出。在將對象序列化爲JSON'String'時,您可能會遇到問題。 – Trein

+0

你的服務器調試輸出說什麼?或者更好的是在其上放置一個斷點。我的猜測是你的JSON生成器不能創建TreeViewModel的JSON表示。 –

回答

1

500意味着內部服務器錯誤,並且通常應該附帶日誌消息,或者甚至在某些情況下嵌入在發送給客戶端的消息主體中的異常。

最有可能發生的事情是,您的方法已處理並返回List<TreeViewModel>,但不能被序列化發送。

例如,某些序列化程序不喜歡使用原始集合。你需要有你自己的對象,然後把它放在裏面。找到問題的實際原因的唯一方法是找到這個例外,並看看它告訴你什麼。

相關問題