2012-02-20 89 views
1

在對我的GWT項目(添加受保護資源)做了一些更改後,我無法再啓動它。錯誤編譯GWT

它試圖使用GWT開發者插件時會給出500。一旦我有另一個項目,我解決了在我的Eclipse 3.6 IDE的構建路徑順序中設置GWT 2.x作爲頂級庫的類似錯誤(類中的LineNumberTable中的無效pc)。

20-feb-2012 19:00:33 org.apache.catalina.core.StandardWrapperValve invoke 

SEVERE: Servlet.service() for servlet jsp threw exception 

java.lang.ClassFormatError: Invalid pc in LineNumberTable in class file org/eclipse/jdt/internal/compiler/lookup/TypeBinding 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:632) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:616) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:283) 
    at java.net.URLClassLoader.access$000(URLClassLoader.java:58) 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:197) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:307) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    at org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:260) 
    at org.eclipse.jdt.internal.compiler.Compiler.<init>(Compiler.java:153) 
    at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:423) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:349) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:327) 
    at org.apache.jasper.compiler.Compiler.compile(Compiler.java:314) 
    at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:589) 
    at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:317) 
    at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:313) 
    at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:260) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:558) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) 
    at org.apache.coyote.http11.Http11AprProcessor.process(Http11AprProcessor.java:859) 
    at org.apache.coyote.http11.Http11AprProtocol$Http11ConnectionHandler.process(Http11AprProtocol.java:579) 
    at org.apache.tomcat.util.net.AprEndpoint$Worker.run(AprEndpoint.java:1555) 
    at java.lang.Thread.run(Thread.java:662) 

編輯:類路徑

<classpath> 
    <classpathentry exported="true" kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER/GWT"/> 
    <classpathentry kind="src" path="src"/> 
    <classpathentry kind="src" output="test-classes" path="test"/> 
    <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> 
    <classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v6.0"/> 
    <classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/> 
    <classpathentry kind="lib" path="C:/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r36/gwt-2.4.0/validation-api-1.0.0.GA-sources.jar"/> 
    <classpathentry kind="lib" path="C:/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r36/gwt-2.4.0/validation-api-1.0.0.GA.jar" sourcepath="C:/eclipse/plugins/com.google.gwt.eclipse.sdkbundle_2.4.0.v201201120043-rel-r36/gwt-2.4.0/validation-api-1.0.0.GA-sources.jar"/> 
    <classpathentry kind="lib" path="WebContent/WEB-INF/lib/sqljdbc4.jar"/> 
    <classpathentry kind="lib" path="WebContent/WEB-INF/lib/NeptunoMetascada.jar"/> 
    <classpathentry kind="lib" path="WebContent/WEB-INF/lib/slf4j-api-1.6.4.jar"/> 
    <classpathentry kind="lib" path="WebContent/WEB-INF/lib/slf4j-jdk14-1.6.4.jar"/> 
    <classpathentry kind="output" path="WebContent/WEB-INF/classes"/> 
</classpath> 
+0

http://stackoverflow.com/questions/2322031/why-did-servlet-service-for-servlet-jsp-throw-this-exception – DTing 2012-02-20 21:37:20

+0

我發現之前已經發現該鏈接谷歌搜索,沒有幫助。 – jpp1jpp1 2012-02-21 07:53:46

+0

發佈您的項目的類路徑。 – Strelok 2012-02-21 08:20:29

回答

0

我不能完全肯定,如果這有助於你的問題,但也有幾件事情,看起來可疑的我。

首先,我會刪除單獨的validation-api條目,因爲它們是GWT容器的一部分。

其次,GWT容器被標記爲正在導出,這不應該是必需的。所有你需要的是WEB-INF/lib中的gwt-servlet.jar,它不需要像web應用程序庫中那樣的單獨的類路徑條目。

第三,它看起來好像web應用程序庫的容器丟失,在這裏你有幾個罐子的上市明確:

<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>

如前所述,我也不太清楚,如果這可以幫助您實際問題 - 我看起來很奇怪。