2013-09-26 5 views
7

Uso eclipse Indigo e Tomcat 6.0.3 e JSF 2.0.Attributo Codice assente nel metodo che non è nativo o astratto nel file di classe javax/faces/webapp/errore FacesServlet nella compilazione

sto lavorando da this esempio ma ottengo questi errori in fase di esecuzione:

java.lang.ClassFormatError: Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet 
    at java.lang.ClassLoader.defineClass1(Native Method) 
    at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) 
    at java.lang.ClassLoader.defineClass(ClassLoader.java:615) 
    at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) 
    at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2818) 
    at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1159) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1647) 
    at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1526) 
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationServletAnnotations(WebAnnotationSet.java:108) 
    at org.apache.catalina.startup.WebAnnotationSet.loadApplicationAnnotations(WebAnnotationSet.java:58) 
    at org.apache.catalina.startup.ContextConfig.applicationAnnotationsConfig(ContextConfig.java:297) 
    at org.apache.catalina.startup.ContextConfig.start(ContextConfig.java:1078) 
    at org.apache.catalina.startup.ContextConfig.lifecycleEvent(ContextConfig.java:261) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
    at org.apache.catalina.core.StandardContext.start(StandardContext.java:4612) 
    at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:799) 
    at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:779) 
    at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:601) 
    at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:943) 
    at org.apache.catalina.startup.HostConfig.deployWARs(HostConfig.java:778) 
    at org.apache.catalina.startup.HostConfig.deployApps(HostConfig.java:504) 
    at org.apache.catalina.startup.HostConfig.check(HostConfig.java:1385) 
    at org.apache.catalina.startup.HostConfig.lifecycleEvent(HostConfig.java:306) 
    at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent(LifecycleSupport.java:142) 
    at org.apache.catalina.core.ContainerBase.backgroundProcess(ContainerBase.java:1389) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1653) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.processChildren(ContainerBase.java:1662) 
    at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1642) 
    at java.lang.Thread.run(Thread.java:680) 

ho aggiunto tutti i javaee-web-api, javax.faces-api vasetti in Maven dipendenza:

<dependency> 
    <groupId>commons-httpclient</groupId> 
    <artifactId>commons-httpclient</artifactId> 
    <version>3.1</version> 
</dependency> 
<dependency> 
    <groupId>com.oracle</groupId> 
    <artifactId>ojdbc6</artifactId> 
    <version>11.2.0.2.0</version> 
    <scope>compile</scope> 
</dependency> 
<dependency> 
    <groupId>junit</groupId> 
    <artifactId>junit</artifactId> 
    <version>4.8.2</version> 
    <scope>test</scope> 
</dependency> 
<dependency> 
    <groupId>org.apache.tomcat</groupId> 
    <artifactId>tomcat-jdbc</artifactId> 
    <version>7.0.19</version> 
</dependency> 
<dependency> 
    <groupId>tomcat</groupId> 
    <artifactId>tomcat-juli</artifactId> 
    <version>5.5.12</version> 
</dependency> 
<dependency> 
    <groupId>commons-lang</groupId> 
    <artifactId>commons-lang</artifactId> 
    <version>2.2</version> 
</dependency> 
<dependency> 
    <groupId>commons-codec</groupId> 
    <artifactId>commons-codec</artifactId> 
    <version>1.3</version> 
</dependency> 
<dependency> 
    <groupId>javax.faces</groupId> 
    <artifactId>javax.faces-api</artifactId> 
    <version>2.1</version> 
</dependency> 
<dependency> 
    <groupId>javax</groupId> 
    <artifactId>javaee-web-api</artifactId> 
    <version>6.0</version> 
    <scope>provided</scope> 
</dependency> 
<dependency> 
    <groupId>commons-logging</groupId> 
    <artifactId>commons-logging</artifactId> 
    <version>1.1</version> 
    <exclusions> 
    <exclusion> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
+0

Questo è un problema di file jar. Mostra la tua dipendenza da esperto. – Masudul

+0

Ho aggiornato le dipendenze Maven sopra ... – Khirthan

+0

L'ho riparato. Vedi la mia risposta. – Masudul

risposta

10

La mia percezione è giusto . Questo era un problema con il file jar. Non hai inserito il file jar JSF corretto nel classpath.

<dependency> 
      <groupId>javax.faces</groupId> 
      <artifactId>javax.faces-api</artifactId> 
      <version>2.1</version> 
    </dependency> 

Sostituire sopra dipendenza con le seguenti dipendenze:

<dependency> 
     <groupId>org.glassfish</groupId> 
     <artifactId>javax.faces</artifactId> 
     <version>2.1.13</version> 
</dependency> 
+0

Ottenuto lo stesso errore di Khirthan e in effetti questo l'ha risolto, grazie! Inoltre, come facevi a sapere che è la dipendenza corretta? E perché questo non è elencato più in alto nel sito di deposito Maven? http://mvnrepository.com/search?q=jsf –