javax.net.ssl.KeyManagerFactory - ошибка ограниченного класса с GAE - PullRequest
1 голос
/ 05 октября 2011

У меня есть приложение Spring Social , которое развертывается на Google App Engine , но я получаю следующую ошибку во время одного из рабочих процессов моего приложения:

java.lang.NoClassDefFoundError: javax.net.ssl.KeyManagerFactory is a restricted class. Please see the Google  App Engine developer's guide for more details.
    at com.google.appengine.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
    at org.apache.http.conn.ssl.SSLSocketFactory.createSSLContext(SSLSocketFactory.java:184)
    at org.apache.http.conn.ssl.SSLSocketFactory.createDefaultSSLContext(SSLSocketFactory.java:209)
    at org.apache.http.conn.ssl.SSLSocketFactory.<init>(SSLSocketFactory.java:333)
    at org.apache.http.conn.ssl.SSLSocketFactory.getSocketFactory(SSLSocketFactory.java:165)
    at org.springframework.social.support.HttpComponentsClientHttpRequestFactory$HttpComponentsClient_4_1.getInstance(HttpComponentsClientHttpRequestFactory.java:185)
    at org.springframework.social.support.HttpComponentsClientHttpRequestFactory.<init>(HttpComponentsClientHttpRequestFactory.java:79)
    at org.springframework.social.support.ClientHttpRequestFactorySelector$HttpComponentsClientRequestFactoryCreator$1.<init>(ClientHttpRequestFactorySelector.java:68)
    at org.springframework.social.support.ClientHttpRequestFactorySelector$HttpComponentsClientRequestFactoryCreator.createRequestFactory(ClientHttpRequestFactorySelector.java:68)
    at org.springframework.social.support.ClientHttpRequestFactorySelector.getRequestFactory(ClientHttpRequestFactorySelector.java:44)
    at org.springframework.social.oauth2.ProtectedResourceClientFactory.create(ProtectedResourceClientFactory.java:56)
    at org.springframework.social.oauth2.AbstractOAuth2ApiBinding.<init>(AbstractOAuth2ApiBinding.java:60)
    at org.springframework.social.facebook.api.impl.FacebookTemplate.<init>(FacebookTemplate.java:107)
    at saket.fb.controller.FaceBookController.attack(FaceBookController.java:35)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:436)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:424)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:900)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)

Как я могу преодолеть это?

Я видел похожие / похожие сообщения / вопросы, но они, похоже, не отвечают на вопрос здесь.

1 Ответ

1 голос
/ 06 октября 2011

Вы не можете открыть свои собственные сокеты - SSL или иным образом - в App Engine.Вместо этого вы должны использовать URLFetch API для выполнения внешних запросов.

...