0
說我有一個簡單的類名稱和姓氏作爲屬性的人。還假設我有一個簡單的休息服務,獲得返回人員列表的終端。爲什麼返回類型爲Iterable <MyClass>的jax-rs服務工作,而收集<MyClass>不是?
public class Person {
// name and last name properties plus getters and setters
}
// Service
@Stateless
@LocalBean
@Path("test")
public class SimpleRestService {
//Suppose people is initialized and contains actual people
private ArrayList<Person> people;
@GET
@PATH("/people/iterable")
public Iterable<Person> getPeople(){
//This one works
return people;
}
@GET
@PATH("/people/collection")
public Collection<Person> getPeople(){
//This one fails. HTTP 500. Nothing on server.log ...
return people;
}
}
最前一頁endpoin 測試/人/迭代將正常工作,而沒有任何一個有對這個線索測試/人/收集將HTTP 500失敗?
我對此不太確定。它必須更多地使用泛型和[TypeEreasure](http://docs.oracle.com/javase/tutorial/java/generics/erasure.html)。我做了測試,創建了一個Person類和上面的服務,但是我能夠無差別地返回Iterable或Collection。然後我添加了一些泛型,並停止爲Iterable和Collection兩者工作。當我能夠返回Iterable而不是Collection時,我嘗試重現完全相同的場景,但不幸的是我無法做到這一點。然後......我不知道這是否仍然是一個有效的問題,因爲我無法複製它 –