Witam. Chcę pobrać ArrayList z metody która jest na serwerze. Niestety umiem zwrócić tylko Stringa, przy innych wyrzuca mi błąd 500 Internal Server Error. Czy może ktoś mi z tym pomóc? Korzystam z jersey, tomcata oraz RestTemplate. Załaczam kody
package com.pnowicki.greatcrm.desktop.logic;
import java.util.ArrayList;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import com.pnowicki.greatcrm.desktop.data.Office;
@Path("/officemanager")
public class OfficeManager
{
ArrayList<Office> offices = new ArrayList<Office>();
@GET
@Path("/getoffices")
public ArrayList getOffices()
{
return offices;
}
}
package com.pnowicki.greatcrm.desktop.ui;
import java.util.ArrayList;
import org.springframework.web.client.RestTemplate;
public class OfficesUI
{
final String REST_URI = "http://localhost:8080/Logic/rest/officemanager/getoffices";
RestTemplate cos = new RestTemplate();
ArrayList tmp = cos.getForObject("http://localhost:8080/Logic/rest/officemanager/getoffices", ArrayList.class);
}
Edit: Dorzucam klasę Office, całą treść błędu. Logów z tomcata nie dorzucę, ponieważ najpóźniejsze logi mam z 13 lutego. Nie wiem czemu.
package com.pnowicki.greatcrm.desktop.data;
import java.util.ArrayList;
import com.pnowicki.greatcrm.desktop.data.Employee;
public class Office
{
private String name = "";
private String address = "";
private ArrayList<Employee> employees = new ArrayList<Employee>();
private ArrayList<Client> clients = new ArrayList<Client>();
public Office(String name, String address)
{
this.name = name;
this.address = address;
}
.
.
.
Metody set i get dla "name" oraz "address"
public String toString()
{
return ("Nazwa biura: " + name + ", Adres: " + address);
}
}
treść błędu
lut 22, 2013 2:27:42 PM org.springframework.web.client.RestTemplate handleResponseError
WARNING: GET request for "http://localhost:8080/Logic/rest/officemanager/getoffices" resulted in 500 (Internal Server Error); invoking error handler
Exception in thread "main" org.springframework.web.client.HttpServerErrorException: 500 Internal Server Error
at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:78)
at org.springframework.web.client.RestTemplate.handleResponseError(RestTemplate.java:486)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:443)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:401)
at org.springframework.web.client.RestTemplate.getForObject(RestTemplate.java:199)
at com.pnowicki.greatcrm.desktop.ui.OfficesUI.show(OfficesUI.java:179)
at com.pnowicki.greatcrm.desktop.ui.GreatCRMUI.main(GreatCRMUI.java:12)
Edit2: Sprawdzałem z Serializable, ale nic nie dało. Teraz zauważyłem, że przy restarcie serwera, wypluwa taki błąd
lut 22, 2013 8:10:02 PM com.sun.jersey.spi.container.ContainerResponse logException
SEVERE: Mapped exception to response: 500 (Internal Server Error)
javax.ws.rs.WebApplicationException: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type class java.util.ArrayList, and MIME media type application/octet-stream was not found
at com.sun.jersey.spi.container.ContainerResponse.write(ContainerResponse.java:285)
at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:1479)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1391)
at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:1381)
at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:416)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:538)
at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:716)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
at java.lang.Thread.run(Thread.java:722)
Caused by: com.sun.jersey.api.MessageException: A message body writer for Java class java.util.ArrayList, and Java type class java.util.ArrayList, and MIME media type application/octet-stream was not found
... 24 more