Проблема в том, что если я попытаюсь выполнить POST, все будет нормально. Если я попытаюсь выполнить GET экземпляра, сервер выдаст мне «внутреннюю ошибку 500».
Это часть beans:
-Peer-
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement(name="peer")
public class Peer {
private int id;
private String address;
private int port;
public Peer(){ }
public Peer (int id, String address, int port){
this.id = id;
this.address = address;
this.port = port;
}
//under here basic getters and setters..
}
-ListOfPeers-
import java.util.ArrayList;
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement (name = "listofpeers")
public class ListOfPeers {
@XmlElement(name="peer")
private List<Peer> peersList;
private static ListOfPeers instance;
private ListOfPeers(){
peersList= new ArrayList<Peer>();
}
//singleton
public synchronized static ListOfPeers getInstance(){
if(instance==null)
instance = new ListOfPeers();
return instance;
}
public synchronized List<Peer> getPeersList() {
return new ArrayList<>(peersList);
}
public synchronized void setPeersList(List<Peer> peersList) {
this.peersList = peersList;
}
public synchronized int addPeerToList(Peer peer) {
for(Peer currentPeer : ListOfPeers.getInstance().peersList) {
if(currentPeer.getId()==peer.getId()) return -1;
}
ListOfPeers.getInstance().peersList.add(peer);
return ListOfPeers.getInstance().peersList.size();
}
}
И это услуги:
import javax.ws.rs.*;
import javax.ws.rs.core.Response;
@Path("/services")
public class Services {
@GET
@Path("/getpeers")
@Produces("application/xml")
public Response getPeers() {
return Response.ok(ListOfPeers.getInstance()).build();
}
@POST
@Path("/addpeer")
@Consumes("application/xml")
public Response addPeer(Peer peer) {
int response = ListOfPeers.getInstance().addPeerToList(peer);
if(response < 0){
return Response.status(400, "Invalid ID: "+ peer.getId() + " is already in use.").build();
}
else return Response.status(200, String.valueOf(response)).build();
}
Надеюсь, я дал достаточно контекста, это мой первый вопрос, поэтому я не знаю, отсутствует то, что может понадобиться.