2012-01-18 3 views
1

Java 클래스에서 PUSH 알림을 Android 클라이언트로 보내야한다는 요구 사항이 있습니다. 이 클래스는 URL : http://www.vogella.de/articles/AndroidCloudToDeviceMessaging/article.html (섹션 2.4 - 메시지 보내기)에 제공된 지침을 사용하여 작성되었습니다. JBOSS 및 Weblogic과 같은 표준 응용 프로그램 서버에서 정상적으로 작동합니다.app-Engine의 java 클래스에서 Android 클라이언트로 PUSH 알림 보내기

하지만 Google 애플리케이션 엔진으로 이동해야하지만 클래스에서 컴파일 오류가 발생합니다. '클래스 javax.net.ssl.HostnameVerifier는 GAE의 Java 런타임 환경에서 지원되지 않습니다.' 비슷한 오류가 'SSLSession'클래스에도 발생합니다.

이 방법을 극복 할 수 있습니까? 아니면 app-engine에서 실행되는 Java 클래스에서 PUSH 알림을 보낼 수있는 다른 방법이 있습니까?

덕분에, 인 Vinay

답변

1

그것은 당신이 그 클래스가 GAE에서 실행할 수 없습니다 의미 직접 극복 할 수 없습니다. 솔루션에 관해서는 사용자 지정 HostnameVerifier를 사용하려는 이유가 확실하지 않으므로 대신 HttpURLConnection을 사용하고 모든 "hostnameVerifier"부분을 제거하십시오.

편집 : App Engine의 fetch API도 사용할 수 있습니다. 물론 지원됩니다. 귀하의 질문에 Is there is any other way to send PUSH notifications from Java classes running on the app-engine?에 대해서는

+0

감사합니다 ... 난 HttpURLConnection의로 변경하고 HostnameVerifier의 확장 전용 클래스를 제거하지만, java.lang.NoClassDefFoundError가 말을 런타임에 새로운 오류가 발생합니다 : javax.net.SocketFactory는이 제한된 클래스입니다. 자세한 내용은 Google App Engine 개발자 가이드를 참조하십시오. 메서드 실행시 소켓이 GAE에서 완전히 지원되지 않기 때문일 수 있습니까? GAE에서 Java로 PUSH를 수행하는 다른 방법이 있는지 알고 있습니까? – Vinay

+0

어디에서 던집니까? 연결된 코드에는 명시 적으로 참조가 없습니다. 밀어 넣기를 수행하기 위해 C2DM 서버에 대한 간단한 POST 만 수행하면되므로 GAE의'HttpURLConnection'과 완벽하게 일치해야합니다. – Viruzzo

0

, 대답은 '예, 예 Beaconpush 또는 Spire.io 같은 타사 서비스는 애플 리케이션 엔진과 잘 통합 될 수 있고, 어떤 경우에는 앱 엔진 채널 API를 사용하는 것에 비해 비용면에서 훨씬 저렴 수 . 응답 Viruzzo에 대한

+0

안녕하세요 이브라힘, 자바 클래스에 연결할 수 있는지 확인해 주시겠습니까? 요구 사항은 App-Engine에서 실행중인 Java 클래스에서 PUSH 알림을 보내는 것입니다. – Vinay

+0

그는 이미 Google의 [C2DM] (http://code.google.com/intl/it-IT/android/c2dm/)을 사용하고 있습니다. 두 서비스와 정확히 동일한 서비스입니다. 그는 서비스에 액세스하는 데 문제가 있습니다. 푸시 서비스를 구현하고 싶지는 않습니다. – Viruzzo

+0

@Viruzzo : 나는 그의 유효한 질문에 답하고 그에게 고려해야 할 타당한 대안을 주었다. 왜 왜 downvotes가 필요한가? Vinay : REST API를 사용하여 URLFetch API를 통해 메시지를 푸시 할 수 있습니다. 이것이 내 앱에서 수행 한 작업입니다. –

관련 문제