2011-03-09 4 views
1

RESTful 시스템은 저지를 사용하여 구성됩니다. 서명이 확인되고 실행할 수없는 경우 오류가 발생합니다. 원인을 이해하는 사람이 들어 왔는지 가르쳐주십시오.저지 용 OAuth

맥 OS X 부두 구글 앱 엔진

(클라이언트)

@GET 
@Path("/oauth_client") 
@Produces("text/html") 
public String oauthClient() { 

    OAuthParameters params = new OAuthParameters().consumerKey("hoge").signatureMethod("HMAC-SHA1").timestamp().nonce().version("1.1").token("sho1get"); 
    OAuthSecrets secrets = new OAuthSecrets().consumerSecret("testtest").tokenSecret("testtest"); 

    Client client = Client.create(); 
    WebResource resource = client.resource("http://localhost:8080/v1/test/oauth_provider"); 

    OAuthClientFilter filter = new OAuthClientFilter(client.getProviders(), params, secrets); 
    resource.addFilter(filter); 

    System.out.println("==== Client ====="); 
    return resource.get(String.class); 
} 

(공급자)

@Path("/oauth_provider") 
@Produces("text/plain") 
public String oauthProvider(@Context HttpContext context) { 

    OAuthServerRequest request = new OAuthServerRequest(context.getRequest()); 
    OAuthParameters params = new OAuthParameters().readRequest(request); 
    OAuthSecrets secrets = new OAuthSecrets().consumerSecret("hoge").tokenSecret("testtest"); 
    String timestamp = params.getTimestamp(); 

    try { 
     /* The error occurs here. */ 
     if (OAuthSignature.verify(request, params, secrets)) { 
      return "OK"; 
     } 
    } catch (OAuthSignatureException e) { 
     log.warning(e.getMessage()); 
    } catch (UniformInterfaceException e) { 
     log.warning(e.getMessage()); 
    } catch (Exception e) { 
     log.warning(e.getMessage()); 
    } 

    return "ERROR"; 
} 

(오류)

[java] 2011/03/09 4:52:07 com.sun.jersey.spi.container.ContainerResponse mapMappableContainerException 
[java] SEVERE: The exception contained within MappableContainerException could not be mapped to a response, re-throwing to the HTTP container 
[java] java.lang.AbstractMethodError 
[java]   at com.sun.jersey.oauth.signature.OAuthSignature.constructRequestURL(OAuthSignature.java:193) 
[java]   at com.sun.jersey.oauth.signature.OAuthSignature.elements(OAuthSignature.java:218) 
[java]   at com.sun.jersey.oauth.signature.OAuthSignature.verify(OAuthSignature.java:117) 
[java]   at jp.tryden.resources.test.TestResource.oauthProvider(TestResource.java:259) 
[java]   at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[java]   at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
[java]   at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
[java]   at java.lang.reflect.Method.invoke(Method.java:597) 
[java]   at com.google.appengine.tools.development.agent.runtime.Runtime.invoke(Runtime.java:100) 
[java]   at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.invokeSubLocator(SubLocatorRule.java:162) 
[java]   at com.sun.jersey.server.impl.uri.rules.SubLocatorRule.accept(SubLocatorRule.java:94) 
[java]   at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) 
[java]   at com.sun.jersey.server.impl.uri.rules.ResourceClassRule.accept(ResourceClassRule.java:83) 
[java]   at com.sun.jersey.server.impl.uri.rules.RightHandPathRule.accept(RightHandPathRule.java:133) 
[java]   at com.sun.jersey.server.impl.uri.rules.RootResourceClassesRule.accept(RootResourceClassesRule.java:71) 
[java]   at com.sun.jersey.server.impl.application.WebApplicationImpl._handleRequest(WebApplicationImpl.java:990) 
[java]   at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:941) 
[java]   at com.sun.jersey.server.impl.application.WebApplicationImpl.handleRequest(WebApplicationImpl.java:932) 
[java]   at com.sun.jersey.spi.container.servlet.WebComponent.service(WebComponent.java:384) 
[java]   at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:451) 
[java]   at com.sun.jersey.spi.container.servlet.ServletContainer.service(ServletContainer.java:632) 
[java]   at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
[java]   at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511) 
[java]   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
[java]   at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) 
[java]   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
[java]   at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
[java]   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
[java]   at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) 
[java]   at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
[java]   at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
[java]   at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
[java]   at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
[java]   at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
[java]   at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
[java]   at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) 
[java]   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
[java]   at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:349) 
[java]   at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
[java]   at org.mortbay.jetty.Server.handle(Server.java:326) 
[java]   at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
[java]   at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
[java]   at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
[java]   at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
[java]   at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
[java]   at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
[java]   at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 
[java] 2011/03/09 4:52:07 com.google.apphosting.utils.jetty.JettyLogger warn 

답변

0

컴퓨터를 최신 MacOS Java 업데이트로 업데이트하셨습니까? http://support.apple.com/kb/HT4562

업데이트로 인해 Google App Engine dev_server가 충돌을 일으켜 사용자에게 영향을 줄 수 있습니다. 누가 탓할 지 알 수 없지만 여기에 appengine 버그가 접수되었습니다. http://code.google.com/p/googleappengine/issues/detail?id=4712

많은 사람들이 문제에 별표를 표시하면 더 빠른 응답을 얻을 수 있습니다.