2011-10-28 4 views
28

나는 검색을했고, QuickTip: VerifyError with jdk 7 발견 그러나이클립스에서 Google 애플리케이션을 실행할 때 왜 다음과 같은 오류가 발생합니까?

If you are struggling with the following kind of error

java.lang.VerifyError: Expecting a stackmap frame at branch target 6 bla bla bla …

then a simple solution is to add the following default JVM argument -XX:-UseSplitVerifier

If you are doing it in eclipse, like i was, then goto Window -> Preferences -> Installed JREs -> and add the default parameter.

What does this setting do? Oracle just mentions that it a new type checker with StackMapTable attributes. Huh! Enjoy! It is Oracle now.

, 내가 설치된 JRE의 설정으로 이동 때 An error has occurred when creating this preference page

내가 구글 앱 엔진에 대해 배우기 시작하고 구글의 CodeLabEx0으로 시작을 말한다, 나는 생각을 브라우저에서 보았던 것을 보았 기 때문에 정상적으로 작동했습니다. 그러나 두 번째 장인 CodeLabEx1로 이동하면 브라우저 인터페이스를 통해 제품이나 항목을 만들지 못하게하는 오류가 있습니다. 그런 다음 이클립스 콘솔을보고 다음을 보았습니다.

Oct 28, 2011 11:40:30 PM com.google.apphosting.utils.jetty.JettyLogger info 
INFO: Logging to JettyLogger(null) via com.google.apphosting.utils.jetty.JettyLogger 
Oct 28, 2011 11:40:31 PM com.google.apphosting.utils.config.AppEngineWebXmlReader readAppEngineWebXml 
INFO: Successfully processed C:\Users\rock84\Downloads\CodeLabEx1\CodeLabEx1\war\WEB-INF/appengine-web.xml 
Oct 28, 2011 11:40:31 PM com.google.apphosting.utils.config.AbstractConfigXmlReader readConfigXml 
INFO: Successfully processed C:\Users\rock84\Downloads\CodeLabEx1\CodeLabEx1\war\WEB-INF/web.xml 
Oct 28, 2011 4:40:31 PM com.google.appengine.tools.development.DevAppServerImpl start 
INFO: The server is running at http://localhost:8888/ 
Oct 28, 2011 11:40:59 PM com.google.apphosting.utils.jetty.JettyLogger warn 
WARNING: Error for /product 
java.lang.VerifyError: Expecting a stackmap frame at branch target 48 in method com.google.appengine.codelab.ProductServlet.doPut(Ljavax/servlet/http/HttpServletRequest;Ljavax/servlet/http/HttpServletResponse;)V at offset 38 
    at java.lang.Class.getDeclaredConstructors0(Native Method) 
    at java.lang.Class.privateGetDeclaredConstructors(Unknown Source) 
    at java.lang.Class.getConstructor0(Unknown Source) 
    at java.lang.Class.newInstance0(Unknown Source) 
    at java.lang.Class.newInstance(Unknown Source) 
    at org.mortbay.jetty.servlet.Holder.newInstance(Holder.java:153) 
    at org.mortbay.jetty.servlet.ServletHolder.initServlet(ServletHolder.java:428) 
    at org.mortbay.jetty.servlet.ServletHolder.getServlet(ServletHolder.java:339) 
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1166) 
    at com.google.appengine.tools.development.HeaderVerificationFilter.doFilter(HeaderVerificationFilter.java:35) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.api.blobstore.dev.ServeBlobFilter.doFilter(ServeBlobFilter.java:58) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.apphosting.utils.servlet.TransactionCleanupFilter.doFilter(TransactionCleanupFilter.java:43) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.StaticFileFilter.doFilter(StaticFileFilter.java:122) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at com.google.appengine.tools.development.BackendServersFilter.doFilter(BackendServersFilter.java:97) 
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1157) 
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:388) 
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) 
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:182) 
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:765) 
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:418) 
    at com.google.apphosting.utils.jetty.DevAppEngineWebAppContext.handle(DevAppEngineWebAppContext.java:70) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at com.google.appengine.tools.development.JettyContainerService$ApiProxyHandler.handle(JettyContainerService.java:351) 
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152) 
    at org.mortbay.jetty.Server.handle(Server.java:326) 
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:542) 
    at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:923) 
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:547) 
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212) 
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404) 
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:409) 
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:582) 

나는 이것이 무엇인지 모릅니다. 이것은 신선한 다음 설치된 소프트웨어와 이클립스 3.7의 설치입니다 :

  • 이클립스 IDE 자바 개발자
  • 구글 앱 엔진 자바 SDK에 대한 1.5.5
  • 저렴한 비용으로 Google 플러그인 이클립스 3.7
  • 구글 웹 툴킷 (Google Web Toolkit)에 대한 SDK 2.4.0

내가 윈도우 7에서 Java 버전과 64 비트 1.7.0

답변

30

확인 해요, 내가 너무 발견 용감하다. 그것은 제가 맨 위에 쓴 것입니다. 나도 잘못된 일식 설치에 인수를 추가하는 것으로 밝혀졌습니다. 이제 작동합니다.

"당신이 오류 다음과 같은 종류의 어려움을 겪고있는 경우 java.lang.VerifyError :. 지점 대상에서 stackmap 프레임을 기대 6 어쩌구 어쩌구 저쩌구 ... 다음 간단한 솔루션은 다음과 같은 기본 JVM 인수를 추가하는 것입니다 -XX : -UseSplitVerifier 이클립스에서 일을하고있는 것처럼, 윈도우 -> 환경 설정 -> 설치된 JRE ->로 이동하여 기본 매개 변수를 추가하십시오 .. 이 설정의 용도 오라클은 새로운 유형 검사기 StackMapTable 특성을 사용합니다. 이제 오라클입니다. " 이 친구에 감사 : http://vikashazrati.wordpress.com/2011/10/09/quicktip-verifyerror-with-jdk-7/

2

(I 잊었던 문제를 해결 GAE 내 GWT 응용 프로그램을 배포하고 내가 JDK 6 프로젝트를 전환 JDK 7을 사용했을 때 나는 비슷한 문제가 있었다 그이 번에 JDK 5, 6 GAE가 지원합니다).

+0

지원되는 Java 버전은 [Google 문서] (https://developers.google.com/appengine/docs/java/gettingstarted/installing)를 참조하십시오. – gcbound

7

이것은 당신의 실행 구성을 변경하여도 가능합니다 : 실행> 실행 구성은

는 왼쪽에서 웹 응용 프로그램 프로젝트를 선택 인수 탭을 열고 -XX을 추가하십시오 VM 인수에 -UseSplitVerifier 인수.

이 접근법의 장점은 또한 단점입니다. 전체 VM 설치 대신이 프로젝트에만 적용됩니다.

관련 문제