2013-06-26 2 views
3

Вот моя функция, которая добавляет два разных объекта.Как добавить два разных объекта в один объект

@GET 
@Path("/getApplicationEnv") 
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML}) 
public List<Object> getApplicationEnv(){ 

    List<ApplicationDTO> allApplication = applicationService.getAllApplication();      
    List<Application> Applist = new ArrayList<Application>(); 

    for(ApplicationDTO d: allApplication) 
    { 
     Application a = new Application(); 

     a.setApplicationId(d.getApplicationId()); 
     a.setApplicationName(d.getApplicationName()); 
     a.setCreateTime(d.getCreateTime()); 
     a.setOwner(d.getOwner()); 
     Applist.add(a); 
    } 

    List<EnvironmentDTO> allEnvironments = environmentService.getAllEnvironments(); 

    List<Environment> Envlist = new ArrayList<Environment>(); 

    for(EnvironmentDTO d: allEnvironments) 
    { 
     Environment e = new Environment(); 

     e.setEnvironmentId(d.getEnvironmentId()); 
     e.setEnvironmentName(d.getEnvironmentName()); 
     e.setOwner(d.getOwner()); 
     e.setCreateTime(d.getCreateTime()); 
     Envlist.add(e); 
    } 

    ArrayList<Object> obj= new ArrayList<Object>(); 
    obj.addAll(Applist); 
    obj.addAll(Envlist); 

    return obj; 
} 

В настоящее время я использую ArrayList Объекта для добавления двух объектов, но я получаю следующее сообщение об ошибке:

* суровый: Тело сообщения писатель для класса java.util.ArrayList Java и типа Java java.util.List и MIME приложение типа носителя/XML не найден *

Я попытался сделать общий родительский класс, но у меня возникли некоторые атрибуты как класс общего, так что не представляется возможным, чтобы иметь общий родительский класс.

Может ли кто-нибудь предложить мне способ достичь этого?

ответ

5

вы можете попытаться изменить

ArrayList<Object> obj= new ArrayList<Object>(); 
    obj.addAll(Applist); 
    obj.addAll(Envlist); 

к

ArrayList<MyModel> obj= new ArrayList<MyModel>(); 
MyModel mm = new MyModel(); 
mm.setVal1(Applist); 
mm.setVal2(Envlist); 
obj.add(mm); 

UPDATE

class MyModel 
{ 
    private ApplicationDTO appDTO; 
    private EnvironmentDTO enDTO; 

    //getters settters here 
} 

здесь MyModel просто класс модели с двумя fields согласно вашему требованию ..
надеюсь, что это поможет

+0

Какие два поля вы говорите в классе MyModel? – Prats

+0

поле для хранения вашего Applist и Envlist –

+0

Эти поля уже находятся в моем классе ApplicationDTO и EnvironmentDTO. Я добавляю свои классы, пожалуйста, посмотрите – Prats

1

Проблема в том, что объект не рассматривается как элемент xml. Вы можете создать объект, как этот

@XmlRootElement 
public class MyObject{ 
private List<Application> somename; 
private List<Environment> somename2; 
//Getters 
//setters 
} 

и сделать как этот

public List<MyObject> getApplicationEnv(){ 
/*Some code*/ 
} 
+0

У меня есть все мои получатели и сеттеры в ApplicationDTO и EnvironmentDTO. Какие геттеры и сеттеры я помещу в MyObject? – Prats

+0

Список частных лиц somename; закрытый список somename2; – karthick

+0

Большое спасибо, его работа сейчас :) – Prats