我在使用来自oracle db的sqoop(主机)导入数据时遇到此错误,该数据库位于不同的机器(即从机)中。我也替换了commons.io.jar文件。
答案 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
答案 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>
一切顺利。