javaweb访问hdfs的一些错误

javaweb 与 HDFS 坑

前提:javaweb 项目,hdfs中的数据文件,导入访问hdfs的jar包,eclipse调试

问题:在×××.java代码中正常访问hdfs,浏览jsp时调用×××.java程序,报java.lang.NoClassDefFoundError: org/apache/hadoop/fs/Path。

误区:  java.lang.NoClassDefFoundError    &&  java.lang.ClassNotFoundException

分析:

   java.lang.ClassNotFoundException

   1  .jar 包没导  -  已导入!

   2.  jar包导入位置问题: 在web-inf/lib 下添加 jar包  -  就是在此加的jar包!

   3.  部署的项目文件中没有这个类包  ??

     通过eclipse运行:eclipse没有将lib下的jar包部署到文件的tomcat的web-inf/lib下,tomcat检查时找不到jar

     

  NoClassDefFoundError 错误产生的原因是:

  4.  JVM在编译的时候能找到调用方法或静态变量所在的类,但在运行的时候找不到此类而引发的错误。

  5.  没有将jar添加到classpath ??

 

解决:

  3 -> 参考 - https://www.cnblogs.com/xiangkejin/p/8798859.html

  5 -> 在java build path里的order and export里把要编译的包文件前打勾

    认识:order就是使用class的顺序(因为可能出现class同名的情况)
       export就是把用到的一些的lib和project同时发布.

   有效:重建项目,重新导包

   解释:查看web项目下有没有web app libraries - 这个类库有关web

总结:

  web deployment assembly  -  发布

    * . DeployPath表示每个资源发布之后的文件路径

     build path - 编译

   的几个选型卡Source、Projects、Libraries、Order and Export

   1. 设置 .java .class 的存放路径(java,javaweb项目中位置不同)

   2. 关联其他项目 ( 调用其他项目工程,使用其中一些东西)

   3. 关联类库( libraries 添加jar包到项目中)

   4.  Order and Export有两个属性,调用优先级的问题,越在上边调用优先级越高

 

待续:

   eclipse中的启动web项目过程............

posted @ 2018-11-28 18:21  丨Kouch  阅读(629)  评论(0编辑  收藏  举报