I am using Spring MVC and I want to do a AJAX call to get a JSON message with a Set of Person objects.
I have this jQuery code:
$(document).ready(function() {
getAllPersons();
});
function getAllPersons() {
$.getJSON("person/allpersons", function(data) {
alert(data);
});
}
The person/allpersons (REST URL) calls a RequestMapping:
@RequestMapping(value="/allersons", method=RequestMethod.GET)
public @ResponseBody ??? ???() {
???
}
I have a service implemented to get all Persons:
public interface IPersonService {
public Person addPerson(Person p);
...
public Set<Person> getAllPersons();
}
How can I call this service? So what do I have to place instead of the ???
I tried several things like this, but I get errors in my Eclipse IDE:
public @ResponseBody <Set>Person getSomething() {
Set<Person> persons = IPersonService.getAllPersons();
return persons;
}
Errors / Warnings:
The type parameter Set is hiding the type Set<E>
Cannot make a static reference to the non-static method getAllPersons() from the type IPersonService
The type Set is not generic; it cannot be parameterized with arguments <Person>
Any suggestions?
Thank you in advance & Best Regards.
In your method Person is wrong it should be Set
and another thing is you can not call interface method directly, first you need to implement that method in implementation class.
IPersonService.getAllPersons()This statement is wrong , here compiler considering it as static methodgetAllPersons()ofIPersonServiceclass.}