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项目过程............

javaweb访问hdfs的一些错误的更多相关文章

  1. 通过Thrift访问HDFS分布式文件系统的性能瓶颈分析

    通过Thrift访问HDFS分布式文件系统的性能瓶颈分析 引言 Hadoop提供的HDFS布式文件存储系统,提供了基于thrift的客户端访问支持,但是因为Thrift自身的访问特点,在高并发的访问情 ...

  2. Java程序中不通过hadoop jar的方式访问hdfs

      一般情况下,我们使用Java访问hadoop distributed file system(hdfs)使用hadoop的相应api,添加以下的pom.xml依赖(这里以hadoop2.2.0版本 ...

  3. javaweb开发中的常见错误

    Javaweb中的最常见错误及其解决方法 1.200:表示成功处理业务. 2.400 请求出错: 由于语法格式有误,服务器无法理解此请求.不作修改,客户程序就 无法重复此请求. 解决办法:,遇到400 ...

  4. 部署samba服务之后,在客户端用挂载访问的方式,错误信息:mount: block device //192.168.1.108/mysqldata is write-protected, mounting read-only mount: cannot mount block device //192.168.1.108/mysqldata read-only

    部署samba服务之后,在客户端用挂载访问的方式,错误信息:mount: block device //192.168.1.108/mysqldata is write-protected, moun ...

  5. Firefox访问https出现 ssl_error_weak_server_ephemeral_dh_key错误

    一个自签名的内部网站当ff访问时出现以下错误 SSL received a weak ephemeral Diffie-Hellman key in Server Key Exchange hands ...

  6. windows通过thrift访问hdfs

    thirift是一个支持跨种语言的远程调用框架,通过thrift远程调用框架,结合hadoop1.x中的thriftfs,编写了一个针对hadoop2.x的thriftfs,供外部程序调用. 1.准备 ...

  7. 问题-关于sharemem程序访问WEB出现内存错误处理

    [delphi技术] 关于sharemem造成dll错误的处理办法问题现象:如果程序和dll之间用string作为参数传递时容易出现错误问题处理:需要在程序的uses中使用sharemem.这个sha ...

  8. 利用JavaAPI访问HDFS的文件

    body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...

  9. Hadoop(五)搭建Hadoop与Java访问HDFS集群

    前言 上一篇详细介绍了HDFS集群,还有操作HDFS集群的一些命令,常用的命令: hdfs dfs -ls xxx hdfs dfs -mkdir -p /xxx/xxx hdfs dfs -cat ...

随机推荐

  1. debug的时候出现停在ThreadPoolexecutor.class文件中停留的解决办法

    原因: The posted stack trace indicates that a RuntimeException was encountered in a Daemon thread. Thi ...

  2. MySQL/InnoDB tips & tricks

    本文讨论的是 MySQL 5.7. 1.混用 * 和列名会产生解析错误,要避免这个错误,要使用 tbl_name.* 的格式. 2.where 子句中不能使用 select 中定义的别名,因为 SQL ...

  3. java代码。继承。。。很戳我的心啊。。不太懂。super的真正用法

    总结: package com.addd; //构造方法不能被继承,只能是调用 //属性不能被继承,方法可以 //关于继承练习啊 class fjdsk { String name; int age; ...

  4. Java 的基本语法

    Java 语言严格区分大小写 一个 Java 源文件里可以定义多个类,但其中只能有一个类被定义为 public 类 如果源文件中包含了 public 类,源文件的名称必须和该 public 类同名 p ...

  5. hibernate Annotation 以及注解版的数据关联

    目的是不写xxx.hbm.xml映射文件,使用注解 主配置文件还是要有hibernate.cfg.xml <?xml version="1.0" encoding=" ...

  6. Repmat:Replicate and tile an array

    Repmat:Replicate and tile an array Syntax B = repmat(A,m,n) B = repmat(A,[m n]) B = repmat(A,[m n p. ...

  7. Navicat断网时连不上数据库

    最近安装了破解的Navicat,在有网的条件下可以连接本地安装的MySQL数据库,但断网之后就不可以,如下: 于是上网查资料,发现原因为: localhost可以看成是一个域名,在一大部分情况下,它能 ...

  8. python爬虫框架(2)--PySpider框架安装配置

    1.安装 1.phantomjs PhantomJS 是一个基于 WebKit 的服务器端 JavaScript API.它全面支持web而不需浏览器支持,其快速.原生支持各种Web标准:DOM 处理 ...

  9. 《Android应用性能优化》 第6章 性能评测和剖析

    1.时间测量 System.currentTimeMillis 精读和准确度可能不够:更改系统时间会影响结果:UTC时间1970/1/1 00:00:00到现在的毫秒数 System.nanoTime ...

  10. 每天一道算法题(24)——自定义幂函数pow

    double myPower(double base, int exponent){ if(exponent==0) return 1; if(exponent==1) return base; if ...