簡體   English   中英

在類文件javax / faces / webapp / FacesServlet中的非本機或抽象方法中的Absent Code屬性

[英]Absent Code attribute in method that is not native or abstract in class file javax/faces/webapp/FacesServlet

我正在構建一個使用JSF的PoC,並使用Tomcat 7.0.59作為我的服務器。 我的pom.xml看起來像:

<repositories>
        <repository>
            <id>Java.Net</id>
            <url>http://download.java.net/maven/2/</url>
        </repository>
    </repositories>
    <dependencies>
        <dependency>
            <groupId>javax</groupId>
            <artifactId>javaee-api</artifactId>
            <version>6.0</version>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.faces</groupId>
            <artifactId>jsf-api</artifactId>
            <version>2.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.faces</groupId>
            <artifactId>jsf-impl</artifactId>
            <version>2.1.7</version>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>3.0.1</version>
        </dependency>
    </dependencies>

我查找錯誤並發現它是由javaee-api引起的,但看起來甚至在添加了特定的依賴項之后問題仍無法解決。 有一個不同的線程,但它在不同的服務器,如glassfish,jboss,似乎並沒有在我的情況下工作。

編輯:在Samuel和Tiny的建議之后,我已經達到了這個pom.xml:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>3.8.1</version>
        <scope>test</scope>
    </dependency>
    <dependency>
        <groupId>javax.faces</groupId>
        <artifactId>jsf-api</artifactId>
        <version>2.1</version>
    </dependency>
    <dependency>
        <groupId>com.sun.faces</groupId>
        <artifactId>jsf-impl</artifactId>
        <version>2.1.7</version>
    </dependency>
    <dependency>
        <groupId>javax.servlet</groupId>
        <artifactId>javax.servlet-api</artifactId>
        <version>3.0</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

maven依賴樹看起來像:

 com.Sourabh:SourabhTest:war:0.1
[INFO] +- junit:junit:jar:3.8.1:test
[INFO] +- javax.faces:jsf-api:jar:2.1:compile
[INFO] \- com.sun.faces:jsf-impl:jar:2.1.7:compile

Servlet-api必須用<scope>provided</scope>標記,作為tomcat提供的jar。 如果不這樣,您可能會遇到類加載器問題。

為了確保你沒有多次相同的依賴(通過傳遞dep。)你可以運行mvn dependency:tree或者進入eclipse中的依賴層次結構插件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM