Pobranie danych z web service

0

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
0

Dodałem tak @XmlRootElement ale dalej jest ten sam błąd

package com.pnowicki.greatcrm.desktop.logic;
 
 
import java.util.ArrayList;
 
 
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.xml.bind.annotation.XmlRootElement;
 
import com.pnowicki.greatcrm.desktop.data.Office;
 
@Path("/officemanager")
@XmlRootElement
public class OfficeManager 
{
        ArrayList<Office> offices = new ArrayList<Office>();
 
        @GET
        @Path("/getoffices")
        public ArrayList getOffices()
        {
                return offices;
        }
}

Edit:
Jak zmieniłem tak jak w podanym linku to wyskakuje nowy błąd

lut 23, 2013 9:44:00 AM org.springframework.web.client.RestTemplate handleResponseError
WARNING: GET request for "http://localhost:8080/Logic/rest/officemanager/getoffices" resulted in 406 (Not Acceptable); invoking error handler
Exception in thread "main" org.springframework.web.client.HttpClientErrorException: 406 Not Acceptable
	at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:76)
	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:183)
	at com.pnowicki.greatcrm.desktop.ui.GreatCRMUI.main(GreatCRMUI.java:13)
package com.pnowicki.greatcrm.desktop.logic;

import java.util.ArrayList;
import java.util.List;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;

import javax.ws.rs.core.MediaType;

import javax.xml.bind.annotation.XmlRootElement;

import com.pnowicki.greatcrm.desktop.data.Office;
import com.sun.jersey.api.JResponse;


@Path("/officemanager")
@XmlRootElement
public class OfficeManager
{
	List<Office> offices = new ArrayList<Office>();

	@GET
	@Path("/getoffices")
	@Produces(MediaType.APPLICATION_XML)
	public JResponse<List<Office>> getOffices()
	{
        return JResponse.ok(offices).build();
	}
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1