maven+springmvc+hbaseTemplate java.lang.AbstractMethodError

項目環境:spring 3.2.3 / hadoop 2.5 / spring-data-hadoop 1.0.2  ,tomcat7

pom中加入

<dependency>

        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-hadoop</artifactId>

        <version>1.0.2.RELEASE</version>

</dependency>

啓動完成後總會拋一個異常:

java.lang.AbstractMethodError: javax.servlet.jsp.JspFactory.getJspApplicationContext(Ljavax/servlet/ServletContext;)Ljavax/servlet/jsp/JspApplicationContext;

在網上查了下,是因爲maven加入hbase時,hbase會引用相應的依賴包,導致版本衝突。

通過maven build 運行   project-info-reports:dependencies 運行完命令會在target/site下有個dependencies.html 文件,查看依賴關係樹。

開始認爲是jasper-compiler-5.5.12.jar和jasper-runtime-5.5.23.jar 兩個包和tomcat衝突的問題

過濾掉hadoop-common中依賴的這兩個包:

    <dependency>
        <groupId>org.apache.hadoop</groupId>
        <artifactId>hadoop-common</artifactId>
        <version>2.5.0</version>
        <exclusions>
            <exclusion>
               <groupId>tomcat</groupId>
               <artifactId>jasper-compiler</artifactId>
            </exclusion>
            <exclusion>
               <groupId>tomcat</groupId>
               <artifactId>jasper-runtime</artifactId>
            </exclusion>
        </exclusions>
    </dependency>

發現還是報同樣的異常.

過濾spring-data-hadoop 中依賴的包:

    <dependency>
        <groupId>org.springframework.data</groupId>
        <artifactId>spring-data-hadoop</artifactId>
        <version>1.0.2.RELEASE</version>
        <exclusions>
            <exclusion>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-streaming</artifactId>
             </exclusion>
            <exclusion>
                <groupId>org.apache.hadoop</groupId>
                <artifactId>hadoop-tools</artifactId>
             </exclusion>
        </exclusions>
    </dependency>

再啓動就不拋異常了。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章