java.lang.NoSuchMethodError:org.apache.commons.io.FileUtils.isSymLink(Ljava / io / File;)Z

时间:2015-07-02 07:13:56

标签: java hadoop sqoop

我在使用来自oracle db的sqoop(主机)导入数据时遇到此错误,该数据库位于不同的机器(即从机)中。我也替换了commons.io.jar文件。

5 个答案:

答案 0 :(得分:2)

也许我迟到了,但只是遇到了同样的问题,可以解决它。 我的解决方案是在weblogic.xml中指出你的jar必须覆盖weblogic中存在的相同内容:

<weblogic-web-app ...>
<container-descriptor>
    <prefer-application-packages>
        <package-name>org.apache.commons*</package-name>
    </prefer-application-packages>
</container-descriptor>

此致 何。

来源:https://mycodingexperience.wordpress.com/2016/01/31/determine-run-time-jar-being-used/

答案 1 :(得分:1)

这与任何特定的库无关。这是java

中的一般例外

问题很简单。该方法在编译时可用,但在运行时不可用。

其中一个原因可能是您使用了错误版本的公共库。只需在任何zip查看器中打开该jar文件,然后转到可以找到该类的特定位置,该位置将是类似的 org / apache / commons / io / FileUtils 并使用某个类反编译器对该类进行反编译,并检查是否 isSymLink(Ljava / io) / File;)Z 编译器抱怨在该类中可用。

也可能出现方法存在但方法签名不同

答案 2 :(得分:1)

您使用的是commons.io.jar的哪个版本?自{2.0}版本引入了isSymlink(java.io.File)方法,因此您的commons.io.jar版本应该大于2.0。

答案 3 :(得分:1)

you need to change your mapred.site.xml file. copy "mapred-site.xml.template" to mapred-site.xml

Follow below link and change mapred-site.xml and yarn.site.xml

https://www.tutorialspoint.com/sqoop/sqoop_installation.htm

答案 4 :(得分:0)

对于那些仍使用最新版本的 org.apache.poi (例如4.1.1、4.1.2)并拥有Maven并仍然收到此错误的用户: 就我而言,我的POM.xml具有:

<dependency>
  <groupId>org.apache.commons</groupId>
  <artifactId>commons-io</artifactId>
  <version>1.3.2</version>
</dependency>

我被替换为

<dependency>
  <groupId>commons-io</groupId>
  <artifactId>commons-io</artifactId>
  <version>2.7</version>
</dependency>

一切顺利。