2012-06-19 1 views
0

Google App Engine에 배포하려는 GWT가있는 앱을 작성하고 있습니다. 내가 JRE Class White List에 나와 있습니다 java.io.BufferedReader;java.net.URLjavax.crypto.Cipherjava.util.zip.InflaterInputStream처럼, JRE에서 일부 클래스를 사용하려면 - 나는 로컬 내 응용 프로그램을 실행하기 위해 노력하고있어 때 이클립스를 사용하고있어 https://developers.google.com/appengine/docs/java/jrewhitelistGoogle App Enginge에 배포 된 GWT 앱에서 사용할 수있는 클래스는 무엇입니까?

컴파일러 [ERROR] [gwtlist] - Line 46: No source code is available for type java.net.URL; did you forget to inherit a required module?처럼 나에게 오류가 발생합니다. Google App Engine General Questions에서

-https://developers.google.com/appengine/kb/general#language은이 말했다 것 : 나는 라이트 또는 잘못된 생각입니다 경우 ...Also, Java-based applications may only use the JRE classes in the JRE class white list.

내 질문은? 이 JRE Class White List을 클라이언트 측에서 사용할 수 있습니까, 아니면 서버 측 코드에만 유용할까요? 이 경우 Google App Engine을 사용할 필요가 없습니다. 모든 클라이언트 코드는 순수 GWT으로 작성되어야하고 일부 Java 클래스는 JRE Emulation Reference-https://developers.google.com/web-toolkit/doc/latest/RefJreEmulation?hl=es-419#Package_java_io입니다. 이 경우 Google App Engine의 목표는 무엇입니까? 서버를 에뮬레이트하는 것입니까?

편집 : Google App Engine이 서버 측에서만 JRE 클래스를 에뮬레이션 할 수있는 경우 정확한 앱이 어디에서 실행되고 있는지 알려주실 수 있습니다. 상황을 다음과 같이 말합니다.

Google App Engine에 앱이 배포되었습니다.
클라이언트가 app 및 loggs를 실행합니다.
서버 측 코드는 다른 서버의 외부 파일을 열고 압축을 풀어 결과를 클라이언트 측에 보냅니다.

제 질문은 transfer의 작동 방식입니다. Google 클라우드 내부의 모든 것입니까, 아니면 고객이 다운로드해야합니까? 이 압축되지 않은 파일? "

+0

http://stackoverflow.com/questions/11048223/binary-data-and-gwt/11096410#11096410 –

답변

1

Appengine 코드는 서버 쪽만입니다.

클라이언트 측 코드 인 경우 GWT에서 AE에 허용되지 않는 클래스를 사용할 수 있습니다. 그것은 어쨌든 자바 스크립트로 컴파일됩니다. 그러나 GWT를 통해 클라이언트에서 rpc 호출을하기 위해 사용하는 모든 서버 측 코드는 AE 화이트리스트에 있어야하므로 실행 중입니다.

"java.net.URL 유형에 사용할 수있는 소스 코드가 없습니다."라는 오류는 GWT에서 유래되었습니다. 기본적으로 javascript로 컴파일하기 위해 src를 찾고 있습니다. GWT는 컴파일 할 수있는 화이트리스트를 가지고 있으며, 그 이상의 경우 * .gwt.xml 파일의 GWT 모듈로 상속하지 않는 한 src가 필요합니다. https://developers.google.com/web-toolkit/doc/latest/RefJreEmulation

+0

확인, 확인하십시오. 내 질문을 편집했습니다. 서버 측과 클라이언트 측간에 데이터를 전송하는 방법을 알고 있습니까? 실제 고객이이 데이터를 다운로드해야합니까 아니면 모든 것이 Google 클라우드에 있습니까? (나는 나의 기본적인 질문을 편집했다). – filipbe

+0

그럴 경우, 귀하의 고객이 AE에 요청할 것이라고 생각할 것입니다. AE는 다른 서버에서 파일을 가져 와서 클라이언트에게 반환합니다. 클라이언트는 SOP를 가지고 있으며 웹 서비스를 호출하지 않는 한 원래의 서버가 아닌 서버를 호출 할 수 없습니다.이 경우 웹 서비스를 호출하는 경우 직접 호출 할 수 없습니다. https://developers.google.com/appengine/docs/java/urlfetch – user1258245

+0

클라이언트 측의 외부 서버에서 파일을 가져 오기 위해 'RequestBouilder'를 사용할 수는 있지만 그게 무슨 뜻인지는 알지 못합니다. 파일의 압축되지 않은 내용을 얻으려고 AE에 요청하고 싶습니다. 제 질문은 코드가 실제로 실행되는 위치입니다. 서버 측은 AE에 있습니다. 클라이언트 측이 클라이언트 컴퓨터에 있습니까? 이 경우 압축 파일은 의미가 없습니다. 왜냐하면 클라이언트는 압축되지 않은 콘텐츠를 가져와야하며 몇 MB 만 다운로드해야하기 때문입니다. – filipbe

관련 문제