2014-11-18 3 views
0

Google 클라우드 엔드 포인트에 arraylist를 전달하려면 어떻게해야합니까? 그것은 작동하지 않는 것 같습니다.android에서 Google 클라우드 엔드 포인트를 호출하는 동안 엔티티 개체 주입

편집 시작 ---- 는 여기이 ArrayList를 반복 할 때

public CollectionResponse<String> listDevices(@Named("devices") ArrayList<String> devices) 

그러나, 나는 모든 기록이 하나로 응축 얻을 입력으로 ArrayList에와 엔드 포인트의 서명입니다. 따라서 10 개의 문자열을 전달하더라도 내 끝점에서 하나만 얻습니다.

편집 끝 ----

은 내가 ArrayList에 대한 래퍼 개체를 만든 다음 그것을 통과해야 어딘가에 읽었다.

편집 시작은 ---- 는 그래서 ArrayList를

@Entity 
public class DEviceList { 
    ArrayList<String> devices; 
} 

을 포함하는 엔티티를 생성하고 서명을 수정 - 그것도 클라이언트에서 DeviceList의 개체를 전달하는 것이 가능

public CollectionResponse<String> listDevices(DeviceList devices) 

@Named 아니지만? 구문을 제공 할 수 있습니까? 내 이해는 엔티티이므로 @Named 할 수 없으므로 호출 할 때 엔 주입해야합니다. 그러나 구글은 세 가지 유형 주입 할 수 있습니다 - 1. com.google.appengine.api.users.User 2. 나오는 javax.servlet.http.HttpServletRequest 3. javax.servlet.ServletContext

을 그래서 위의 서명이없는 것 작업. 나는 안드로이드 클라이언트에서이 끝점을 호출하는 방법을 잘 모르겠습니다 그러나

DeviceList deviceList = (DeviceList)request.getAttribute("deviceList"); 

으로 개체를 얻을 수

public CollectionResponse<String> listDevices(HttpServletRequest request) 

그리고 내부 -

그래서 난에 서명을 변경? HTTPServletRequest를 사용하여 엔티티 객체를 전달하는 방법은 무엇입니까?

편집 끝 ----

어떻게하면됩니까? 누구든지 예제를 인용 할 수 있습니까?

+0

이 문제를 해결할 수 있었습니까? 현재 유사한 문제가 있음 – cfl

답변

1

질문을하는 방식에 따라 전화가 조용히 실패하는 것 같습니다. 그럴 수는 없습니다. 문제를 더 잘 식별하는 데 도움이되는 일종의 예외 또는 로그인을 받아야합니다. 구름 끝점 API 및 Android에서 새로 고치려면 read this article 수 있습니다.

당신은 API에 클라이언트에서 객체의 ArrayList를 전달하는 데 문제가있는 경우에, 나는 몇 가지를 확인 제안 :

  • 않는 클라이언트로부터 전송되는 어떤 API 경기에서 인수 유형? 둘 다 클래스 정의에 액세스 할 수 있습니까?
  • arraylist 내부의 데이터 유형이 프리미티브이고 여전히 실패하면 어쩌면 "어딘가"라고 읽은 조언이 (필자는 생각하지 않지만) 래퍼 객체를 사용하는 필요성을 언급하고있었습니다. arraylist라는 한 필드 만 포함하고 그것을 라인을 따라 전달합니까?

로그/오류 메시지를 확인하라는 알림 또는이 답변의 다른 정보가 문제를 해결하는 데 도움이 되었으면 먼저 수락 해주십시오. 문제를 해결 한 방법을 설명하기 위해 게시물을 수정하지 않아도됩니다. .

+0

답장을 보내 주셔서 감사합니다. 편집 된 게시물을 참조하십시오. 당신이 말한 점에 관해서는 - 그렇습니다. 인수 유형은 일치했습니다. ArrayList 을 보내고 있었는데 어떻게 든 내용이 하나의 레코드로 압축되었습니다. - 그래, 그게 내가 읽은거야. 양쪽에서 사용할 수있는 래퍼 엔티티를 만들었습니다. 그러나 @Named (Google은 허용하지 않음)가 아니므로 직접 전달할 수는 없습니다. 그렇다면 클라이언트에서 엔티티를 어떻게 전달합니까? –

관련 문제