2014-10-25 3 views
1

EDIT 문제점을 게시했으며 Google AppEngine SDK의 1.9.16 릴리스에서 수정해야합니다. https://code.google.com/p/googleappengine/issues/detail?id=11414localhost에서 Google Cloud Endpoints RPC API를 호출하는 방법은 무엇입니까?


나는 Google 클라우드 엔드 포인트를 사용하여 서비스를 개발하고있다.

App Engine에 배포 할 때 REST와 RPC API 모두 훌륭하게 작동합니다. 그러나 이상한 것은 내가 로컬 (localhost) 서비스를 테스트 할 때 REST 호출이 정상적으로 작동하지만 RPC를 사용하는 호출에 문제가 있다는 것입니다. 백엔드에서

내 메소드 서명은 다음과 같습니다 편의상

@ApiMethod(name = "user.updateprofile", httpMethod = HttpMethod.POST) 
public UserProfileDto updateProfile(@Named("sessionToken") String sessionToken, UserProfileDto profile) throws UnauthorizedException { return profile; } 

난 그냥 직접 UserProfileDto를 반환하고 있습니다.

난 로컬 다음 요청을 실행하는 것을 시도했다 : I가 updateProfile 방법으로 브레이크 포인트를 설정

POST http://localhost:4567/_ah/api/rpc?prettyPrint=false 
Content-Type: application/json-rpc 
Accept: application/json-rpc 
{ 
"method": "mobilebackend.user.updateprofile", 
"id": "gtl_1", 
"jsonrpc": "2.0", 
"params": { 
    "sessionToken": "12345", 
    "resource": { 
     "username": "foo", 
     "userPrivate": true 
    } 
}, 
"apiVersion": "v1" 
} 

, I는 sessionTokenusername 필드 null이다하지만 제대로 12345 것을 확인하고 userPrivate 필드는 false으로 지정했지만 true으로 지정했습니다. UserProfileDto (profile)의 인스턴스는 null이 아닙니다.

문제는이고 RPC 호출 localhost를 사용할 때 DTO 필드에 값을 삽입하지 못합니다. 배포 된 버전에서 테스트 할 때 제대로 작동하며 REST 호출을 사용하면 App Engine에 배포 할 때와 로컬 호스트에서 모두 작동합니다.

위 요청에서 응용 프로그램 엔진에 배포 된 응용 프로그램의 버전을 대상으로 지정하기 위해 URL을 변경하면 올바르게 작동합니다.

mvn appengine:devserver 

나는 로컬 호스트 클라우드 엔드 포인트 RPC 메소드를 호출하기 위해 일부 구성 놓치지 마십시오

https://<app-name>.appspot.com/_ah/api/rpc?prettyPrint=false 내가 사용하는 로컬 호스트에 서비스를 시작? 또는 지원되지 않습니까?

RPC를 사용하는 자동 생성 된 iOS 클라이언트 라이브러리를 사용해 보았을뿐만 아니라 서비스가 DTO 개체의 필드에 값을 주입하지 못하기 때문에 동일한 오류가 발생합니다.

+0

동일한 문제가 있어도 localhost는 전달 된 매개 변수에 대해 NULL 결과를 계속 제공합니다. 일부 로컬 호스트 문제를 해결하기 위해 내 노트에서 뭔가를 발견했습니다. appengine SDK에서 로컬 devserver를 매개 변수 으로 실행합니다. appengine-java-sdk-1.8.6/bin/dev_appserver.sh --address = "0.0.0.0" this 얼마 전 내 localhost 문제를 해결했습니다. 이 NULL-passing이 그들 중 하나 였는지 기억하지 못하겠습니까? – Pega88

+0

@ Pega88 감사합니다. 0.0.0.0으로 개발 서버를 시작하고 문제가 해결되는지 확인하려고합니다. 보셨나요? https://code.google.com/p/googleappengine/issues/detail?id=11414 Google은 1.9.16 버전에서 수정해야한다고 말합니다.며칠 전 1.9.15가 발표 된 이래로 다음 릴리스입니다. 거의 매달 릴리스되므로 다음 릴리스를 크리스마스 선물로 기대하고 있습니다. ;) – dynamokaj

+0

문제를 해결 했습니까? –

답변

1

Google AppEngine SDK의 1.9.17 릴리스를 테스트했으며 RPC POST 요청의 개체 사용이 이제 제대로 작동하는지 확인할 수 있습니다.

관련 문제