2013-09-26 44 views
7

Tôi đang sử dụng eclipse Indigo và Tomcat 6.0.3 và JSF 2.0.Thuộc tính mã không có trong phương thức không phải là bản địa hoặc trừu tượng trong tệp lớp javax/faces/webapp/FacesServlet lỗi trong biên dịch

Tôi đang làm việc từ this dụ nhưng tôi nhận được các lỗi trên runtime:

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) 

Tôi đã thêm tất cả các javaee-web-api, javax.faces-api lọ trong sự phụ thuộc maven:

<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

Đây là file jar vấn đề. Hiển thị phụ thuộc maven của bạn. – Masudul

+0

Tôi đã cập nhật phụ thuộc maven ở trên ... – Khirthan

+0

Tôi đã sửa nó. Xem câu trả lời của tôi. – Masudul

Trả lời

10

nhận thức của tôi là đúng . Đây là vấn đề tệp jar. Bạn đã không đặt đúng tệp jar JSF trong classpath của bạn.

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

Replace trên sự phụ thuộc với sự phụ thuộc sau:

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

Có lỗi tương tự như Khirthan và thực sự điều này cố định nó, cảm ơn! Ngoài ra, làm thế nào bạn biết đó là sự phụ thuộc chính xác? Và tại sao điều này không được liệt kê cao hơn tại trang lưu trữ Maven? http://mvnrepository.com/search?q=jsf –

Các vấn đề liên quan