Consider the following error:
2018-07-12 22:46:36,087 FATAL [main] org.apache.hadoop.mapred.YarnChild: Error running child : java.lang.NoSuchMethodError: com.amazonaws.util.StringUtils.trim(Ljava/lang/String;)Ljava/lang/String;
at com.amazonaws.auth.profile.internal.AwsProfileNameLoader.getEnvProfileName(AwsProfileNameLoader.java:72)
at com.amazonaws.auth.profile.internal.AwsProfileNameLoader.loadProfileName(AwsProfileNameLoader.java:54)
at com.amazonaws.regions.AwsProfileRegionProvider.<init>(AwsProfileRegionProvider.java:40)
at com.amazonaws.regions.DefaultAwsRegionProviderChain.<init>(DefaultAwsRegionProviderChain.java:23)
at com.amazonaws.client.builder.AwsClientBuilder.<clinit>(AwsClientBuilder.java:57)
at com.myorg.udb.DecodeMapper.setup(myMapper.java:71)
at org.apache.hadoop.mapreduce.Mapper.run(Mapper.java:142)
at org.apache.hadoop.mapred.MapTask.runNewMapper(MapTask.java:784)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:341)
at org.apache.hadoop.mapred.YarnChild$2.run(YarnChild.java:165)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:415)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1635)
at org.apache.hadoop.mapred.YarnChild.main(YarnChild.java:160)
and the following code:
package com.myorg.udb;
import com.amazonaws.auth.AWSCredentials;
import com.amazonaws.auth.AWSStaticCredentialsProvider;
import com.amazonaws.auth.BasicAWSCredentials;
import com.amazonaws.auth.profile.internal.AwsProfileNameLoader;
import com.amazonaws.regions.Regions;
import com.amazonaws.services.s3.model.GetObjectRequest;
import com.amazonaws.services.s3.model.S3Object;
import com.amazonaws.util.StringUtils;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.*;
import java.util.*;
public class myMapper extends Mapper<Object, Text, Text, Text> {
#Override
protected void setup(Context context) {
try {
System.out.println(StringUtils.trim("hi"));
} catch(Exception e) {
System.out.println("catch" + e);
}
}
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
}
}
This line: System.out.println(StringUtils.trim("hi")); is causing java.lang.NoSuchMethodError: com.amazonaws.util.StringUtils.trim when I run it in Qubole but works fine in local machine.
Here are my POM imports:
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-s3</artifactId>
<version>1.11.365</version>
</dependency>
<dependency>
<groupId>com.amazonaws</groupId>
<artifactId>aws-java-sdk-core</artifactId>
<version>1.11.365</version>
</dependency>
with the Uber JAR plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.1</version>
<configuration>
<!-- put your configurations here -->
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
Why can't Hadoop find com.amazonaws.util.StringUtils.trim even when I imported it in the file, imported it in the POM, and exported all dependencies into a fat JAR?
What import do I need in order to use com.amazonaws.util.StringUtils.trim?
Here is my dependencies
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) # udb-aggregate ---
[INFO] com.org.myproject:jar:0.2.12-SNAPSHOT
[INFO] +- com.amazonaws:aws-java-sdk-s3:jar:1.11.365:compile
[INFO] | +- com.amazonaws:aws-java-sdk-kms:jar:1.11.365:compile
[INFO] | +- com.amazonaws:aws-java-sdk-core:jar:1.11.365:compile
[INFO] | | +- software.amazon.ion:ion-java:jar:1.0.2:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-databind:jar:2.6.7.1:compile
[INFO] | | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.6.0:compile
[INFO] | | | \- com.fasterxml.jackson.core:jackson-core:jar:2.6.7:compile
[INFO] | | +- com.fasterxml.jackson.dataformat:jackson-dataformat-cbor:jar:2.6.7:compile
[INFO] | | \- joda-time:joda-time:jar:2.8.1:compile
[INFO] | \- com.amazonaws:jmespath-java:jar:1.11.365:compile
[INFO] +- org.apache.httpcomponents:httpclient:jar:4.5.2:runtime
[INFO] | +- org.apache.httpcomponents:httpcore:jar:4.4.4:compile
[INFO] | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | \- commons-codec:commons-codec:jar:1.9:compile
[INFO] +- com.googlecode.json-simple:json-simple:jar:1.1:compile
[INFO] +- org.apache.hadoop:hadoop-common:jar:2.8.4:compile
[INFO] | +- org.apache.hadoop:hadoop-annotations:jar:2.8.4:compile
[INFO] | | \- jdk.tools:jdk.tools:jar:1.8:system
[INFO] | +- com.google.guava:guava:jar:11.0.2:compile
[INFO] | +- commons-cli:commons-cli:jar:1.2:compile
[INFO] | +- org.apache.commons:commons-math3:jar:3.1.1:compile
[INFO] | +- xmlenc:xmlenc:jar:0.52:compile
[INFO] | +- commons-io:commons-io:jar:2.4:compile
[INFO] | +- commons-net:commons-net:jar:3.1:compile
[INFO] | +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] | +- org.mortbay.jetty:jetty:jar:6.1.26:compile
[INFO] | +- org.mortbay.jetty:jetty-util:jar:6.1.26:compile
[INFO] | +- org.mortbay.jetty:jetty-sslengine:jar:6.1.26:compile
[INFO] | +- javax.servlet.jsp:jsp-api:jar:2.1:runtime
[INFO] | +- com.sun.jersey:jersey-core:jar:1.9:compile
[INFO] | +- com.sun.jersey:jersey-json:jar:1.9:compile
[INFO] | | +- org.codehaus.jettison:jettison:jar:1.1:compile
[INFO] | | +- com.sun.xml.bind:jaxb-impl:jar:2.2.3-1:compile
[INFO] | | | \- javax.xml.bind:jaxb-api:jar:2.2.2:compile
[INFO] | | | +- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | | | \- javax.activation:activation:jar:1.1:compile
[INFO] | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.8.3:compile
[INFO] | | \- org.codehaus.jackson:jackson-xc:jar:1.8.3:compile
[INFO] | +- com.sun.jersey:jersey-server:jar:1.9:compile
[INFO] | | \- asm:asm:jar:3.1:compile
[INFO] | +- log4j:log4j:jar:1.2.17:compile
[INFO] | +- net.java.dev.jets3t:jets3t:jar:0.9.0:compile
[INFO] | | \- com.jamesmurty.utils:java-xmlbuilder:jar:0.4:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- commons-configuration:commons-configuration:jar:1.6:compile
[INFO] | | +- commons-digester:commons-digester:jar:1.8:compile
[INFO] | | | \- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] | | \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
[INFO] | +- org.slf4j:slf4j-api:jar:1.7.10:compile
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.10:compile
[INFO] | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] | +- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] | +- org.apache.avro:avro:jar:1.7.4:compile
[INFO] | | +- com.thoughtworks.paranamer:paranamer:jar:2.3:compile
[INFO] | | \- org.xerial.snappy:snappy-java:jar:1.0.4.1:compile
[INFO] | +- com.google.protobuf:protobuf-java:jar:2.5.0:compile
[INFO] | +- com.google.code.gson:gson:jar:2.2.4:compile
[INFO] | +- org.apache.hadoop:hadoop-auth:jar:2.8.4:compile
[INFO] | | +- com.nimbusds:nimbus-jose-jwt:jar:4.41.1:compile
[INFO] | | | +- com.github.stephenc.jcip:jcip-annotations:jar:1.0-1:compile
[INFO] | | | \- net.minidev:json-smart:jar:2.3:compile (version selected from constraint [1.3.1,2.3])
[INFO] | | | \- net.minidev:accessors-smart:jar:1.2:compile
[INFO] | | | \- org.ow2.asm:asm:jar:5.0.4:compile
[INFO] | | +- org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile
[INFO] | | | +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile
[INFO] | | | +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile
[INFO] | | | \- org.apache.directory.api:api-util:jar:1.0.0-M20:compile
[INFO] | | \- org.apache.curator:curator-framework:jar:2.7.1:compile
[INFO] | +- com.jcraft:jsch:jar:0.1.54:compile
[INFO] | +- org.apache.curator:curator-client:jar:2.7.1:compile
[INFO] | +- org.apache.curator:curator-recipes:jar:2.7.1:compile
[INFO] | +- com.google.code.findbugs:jsr305:jar:3.0.0:compile
[INFO] | +- org.apache.htrace:htrace-core4:jar:4.0.1-incubating:compile
[INFO] | +- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] | | \- io.netty:netty:jar:3.7.0.Final:compile
[INFO] | \- org.apache.commons:commons-compress:jar:1.4.1:compile
[INFO] | \- org.tukaani:xz:jar:1.0:compile
[INFO] +- org.apache.hadoop:hadoop-client:jar:2.8.4:compile
[INFO] | +- org.apache.hadoop:hadoop-hdfs-client:jar:2.8.4:compile
[INFO] | | \- com.squareup.okhttp:okhttp:jar:2.4.0:compile
[INFO] | | \- com.squareup.okio:okio:jar:1.4.0:compile
[INFO] | +- org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.8.4:compile
[INFO] | | +- org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.8.4:compile
[INFO] | | | +- org.apache.hadoop:hadoop-yarn-client:jar:2.8.4:compile
[INFO] | | | \- org.apache.hadoop:hadoop-yarn-server-common:jar:2.8.4:compile
[INFO] | | \- org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.8.4:compile
[INFO] | | \- org.fusesource.leveldbjni:leveldbjni-all:jar:1.8:compile
[INFO] | +- org.apache.hadoop:hadoop-yarn-api:jar:2.8.4:compile
[INFO] | +- org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.8.4:compile
[INFO] | | \- org.apache.hadoop:hadoop-yarn-common:jar:2.8.4:compile
[INFO] | | \- com.sun.jersey:jersey-client:jar:1.9:compile
[INFO] | \- org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.8.4:compile
[INFO] \- junit:junit:jar:4.12:test
[INFO] \- org.hamcrest:hamcrest-core:jar:1.3:test
Most likely it's due to local and remote difference in the class. Perhaps the JAR you are providing already appears in different version earlier in the class path and is loaded first. Look at this answer to see how to locate the JAR that contains the class file on the remote.
Class klass = StringUtils.class;
URL location = klass.getResource('/' + klass.getName().replace('.', '/') + ".class");
Hopefully location will have the JAR version number in it so you can confirm the remote version against local.
Since you are already shading you can work around this by repackaging the dependencies, relocating third party classes into your own com.myorg package e.g. com.amazonaws.util.StringUtils becomes com.myorg.com.amazonaws.util.StringUtils. See Using Package Relocation in the maven-shade-plugin. I'd not do it if there are many or large dependencies, but it's up to you.
I got such error while running spark-submit. I realized that the code was built using spark 3.0.0 with hadoop 3.2 libraries and my local spark version was 2.4.7. I upgraded to Spark 3 with hadoop 3.2 and copied the aws-java-sdk-1.11.828.jar (this was the sdk used by my code) to spark jars directory and it worked!
Related
I'm migrating a project from Spring Boot 2.6.1 to Spring Boot 3.0.2 and I'm having problems with log4j dependencies versions. I have modified all the dependencies that were giving me problems but I still couldn't solve the problem. The error is as follows:
Java HotSpot(TM) 64-Bit Server VM warning: Options -Xverify:none and -noverify were deprecated in JDK 13 and will likely be removed in a future release.
SLF4J: No SLF4J providers were found.
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See https://www.slf4j.org/codes.html#noProviders for further details.
SLF4J: Class path contains SLF4J bindings targeting slf4j-api versions 1.7.x or earlier.
SLF4J: Ignoring binding found at [jar:file:/C:/Users/Pablo/.m2/repository/org/apache/logging/log4j/log4j-slf4j-impl/2.18.0/log4j-slf4j-impl-2.18.0.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See https://www.slf4j.org/codes.html#ignoredBindings for an explanation.
ERROR [2023-01-27 11:54:41] [ org.springframework.boot.diagnostics.LoggingFailureAnalysisReporter report 40]
***************************
APPLICATION FAILED TO START
***************************
Description:
An attempt was made to call a method that does not exist. The attempt was made from the following location:
org.springframework.boot.logging.log4j2.Log4J2LoggingSystem.initialize(Log4J2LoggingSystem.java:242)
The following method did not exist:
'void org.apache.logging.log4j.util.PropertiesUtil.addPropertySource(org.apache.logging.log4j.util.PropertySource)'
The calling method's class, org.springframework.boot.logging.log4j2.Log4J2LoggingSystem, was loaded from the following location:
jar:file:/C:/Users/Pablo/.m2/repository/org/springframework/boot/spring-boot/3.0.2/spring-boot-3.0.2.jar!/org/springframework/boot/logging/log4j2/Log4J2LoggingSystem.class
The called method's class, org.apache.logging.log4j.util.PropertiesUtil, is available from the following locations:
jar:file:/C:/Users/Pablo/.m2/repository/org/apache/logging/log4j/log4j-api/2.18.0/log4j-api-2.18.0.jar!/org/apache/logging/log4j/util/PropertiesUtil.class
The called method's class hierarchy was loaded from the following locations:
org.apache.logging.log4j.util.PropertiesUtil: file:/C:/Users/Pablo/.m2/repository/org/apache/logging/log4j/log4j-api/2.18.0/log4j-api-2.18.0.jar
Action:
Correct the classpath of your application so that it contains compatible versions of the classes org.springframework.boot.logging.log4j2.Log4J2LoggingSystem and org.apache.logging.log4j.util.PropertiesUtil
Process finished with exit code 0
And the service dependencies are:
--- maven-dependency-plugin:2.8:tree (default-cli) # core ---
[INFO] es._3xs.adp:core:jar:1.0-SNAPSHOT
[INFO] +- es._3xs.adp:library:jar:1.0-SNAPSHOT:compile
[INFO] | +- org.springframework.boot:spring-boot-configuration-processor:jar:3.0.2:compile
[INFO] | +- org.springframework:spring-websocket:jar:6.0.4:compile
[INFO] | | \- org.springframework:spring-context:jar:6.0.4:compile
[INFO] | +- org.springframework.retry:spring-retry:jar:2.0.0:compile
[INFO] | +- com.opencsv:opencsv:jar:5.5.2:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.12.0:compile
[INFO] | | +- org.apache.commons:commons-text:jar:1.9:compile
[INFO] | | +- commons-beanutils:commons-beanutils:jar:1.9.4:compile
[INFO] | | | +- commons-logging:commons-logging:jar:1.2:compile
[INFO] | | | \- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | | \- org.apache.commons:commons-collections4:jar:4.4:compile
[INFO] | \- org.apache.httpcomponents:httpclient:jar:4.5.14:compile
[INFO] | \- commons-codec:commons-codec:jar:1.15:compile
[INFO] +- org.springframework.data:spring-data-redis:jar:3.0.1:compile
[INFO] | +- org.springframework.data:spring-data-keyvalue:jar:3.0.1:compile
[INFO] | | \- org.springframework.data:spring-data-commons:jar:3.0.1:compile
[INFO] | +- org.springframework:spring-tx:jar:6.0.4:compile
[INFO] | +- org.springframework:spring-oxm:jar:6.0.4:compile
[INFO] | +- org.springframework:spring-aop:jar:6.0.4:compile
[INFO] | +- org.springframework:spring-context-support:jar:6.0.4:compile
[INFO] | \- org.slf4j:slf4j-api:jar:2.0.6:compile
[INFO] +- redis.clients:jedis:jar:3.7.0:compile
[INFO] | \- org.apache.commons:commons-pool2:jar:2.11.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-websocket:jar:3.0.2:compile
[INFO] | \- org.springframework:spring-messaging:jar:6.0.4:compile
[INFO] +- commons-io:commons-io:jar:2.6:compile
[INFO] +- org.springframework.boot:spring-boot-starter-mail:jar:3.0.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:3.0.2:compile
[INFO] | | +- jakarta.annotation:jakarta.annotation-api:jar:2.1.1:compile
[INFO] | | \- org.yaml:snakeyaml:jar:1.33:compile
[INFO] | \- org.eclipse.angus:jakarta.mail:jar:1.0.0:compile
[INFO] | \- org.eclipse.angus:angus-activation:jar:1.0.0:runtime
[INFO] +- uk.org.webcompere:system-stubs-junit4:jar:1.2.0:test
[INFO] | \- uk.org.webcompere:system-stubs-core:jar:1.2.0:test
[INFO] +- com.h2database:h2:jar:1.4.200:compile
[INFO] +- org.apache.httpcomponents.client5:httpclient5:jar:5.2.1:compile
[INFO] | +- org.apache.httpcomponents.core5:httpcore5:jar:5.1.5:compile
[INFO] | \- org.apache.httpcomponents.core5:httpcore5-h2:jar:5.1.5:compile
[INFO] +- org.apache.httpcomponents:httpcore:jar:4.4.13:compile
[INFO] +- org.springframework.boot:spring-boot-starter-thymeleaf:jar:3.0.2:compile
[INFO] | \- org.thymeleaf:thymeleaf-spring6:jar:3.1.1.RELEASE:compile
[INFO] | \- org.thymeleaf:thymeleaf:jar:3.1.1.RELEASE:compile
[INFO] | +- org.attoparser:attoparser:jar:2.0.6.RELEASE:compile
[INFO] | \- org.unbescape:unbescape:jar:1.1.6.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-rest:jar:3.0.2:compile
[INFO] | \- org.springframework.data:spring-data-rest-webmvc:jar:4.0.1:compile
[INFO] | \- org.springframework.data:spring-data-rest-core:jar:4.0.1:compile
[INFO] | +- org.springframework.hateoas:spring-hateoas:jar:2.0.1:compile
[INFO] | +- org.springframework.plugin:spring-plugin-core:jar:3.0.0:compile
[INFO] | \- org.atteo:evo-inflector:jar:1.3:compile
[INFO] +- org.thymeleaf.extras:thymeleaf-extras-springsecurity5:jar:3.0.4.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-devtools:jar:3.0.2:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:3.0.2:compile
[INFO] | \- org.springframework.boot:spring-boot-autoconfigure:jar:3.0.2:compile
[INFO] +- org.springframework.ldap:spring-ldap-core:jar:2.3.6.RELEASE:compile
[INFO] | +- org.springframework:spring-beans:jar:6.0.4:compile
[INFO] | \- org.springframework:spring-core:jar:6.0.4:compile
[INFO] | \- org.springframework:spring-jcl:jar:6.0.4:compile
[INFO] +- com.github.wvengen:proguard-maven-plugin:jar:2.6.0:compile
[INFO] | +- org.apache.ant:ant:jar:1.10.12:compile
[INFO] | | \- org.apache.ant:ant-launcher:jar:1.10.12:compile
[INFO] | +- org.apache.maven:maven-archiver:jar:2.4:compile
[INFO] | | +- org.apache.maven:maven-artifact:jar:2.0:compile
[INFO] | | +- org.apache.maven:maven-model:jar:2.0:compile
[INFO] | | +- org.apache.maven:maven-project:jar:2.0:compile
[INFO] | | | +- org.apache.maven:maven-profile:jar:2.0:compile
[INFO] | | | +- org.apache.maven:maven-artifact-manager:jar:2.0:compile
[INFO] | | | | +- org.apache.maven:maven-repository-metadata:jar:2.0:compile
[INFO] | | | | \- org.apache.maven.wagon:wagon-provider-api:jar:1.0-alpha-5:compile
[INFO] | | | \- org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-8:compile
[INFO] | | | \- classworlds:classworlds:jar:1.1-alpha-2:compile
[INFO] | | +- org.codehaus.plexus:plexus-archiver:jar:1.0-alpha-11:compile
[INFO] | | | +- org.codehaus.plexus:plexus-component-api:jar:1.0-alpha-15:compile
[INFO] | | | \- org.codehaus.plexus:plexus-io:jar:1.0-alpha-3:compile
[INFO] | | +- org.codehaus.plexus:plexus-utils:jar:1.4.9:compile
[INFO] | | \- org.codehaus.plexus:plexus-interpolation:jar:1.6:compile
[INFO] | \- org.apache.maven:maven-plugin-api:jar:3.8.6:compile
[INFO] | +- org.eclipse.sisu:org.eclipse.sisu.plexus:jar:0.3.5:compile
[INFO] | | +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] | | +- org.eclipse.sisu:org.eclipse.sisu.inject:jar:0.3.5:compile
[INFO] | | \- org.codehaus.plexus:plexus-component-annotations:jar:1.5.5:compile
[INFO] | \- org.codehaus.plexus:plexus-classworlds:jar:2.6.0:compile
[INFO] +- org.projectlombok:lombok:jar:1.18.22:compile
[INFO] +- javax.validation:validation-api:jar:2.0.1.Final:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-oauth2:jar:2.2.5.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter-security:jar:2.2.5.RELEASE:compile
[INFO] | | \- org.springframework.cloud:spring-cloud-security:jar:2.2.5.RELEASE:compile
[INFO] | | \- org.springframework.boot:spring-boot-starter-security:jar:3.0.2:compile
[INFO] | +- org.springframework.security.oauth.boot:spring-security-oauth2-autoconfigure:jar:2.1.2.RELEASE:compile
[INFO] | | +- org.springframework.security.oauth:spring-security-oauth2:jar:2.3.4.RELEASE:compile
[INFO] | | | +- org.springframework.security:spring-security-core:jar:6.0.1:compile
[INFO] | | | +- org.springframework.security:spring-security-config:jar:6.0.1:compile
[INFO] | | | +- org.springframework.security:spring-security-web:jar:6.0.1:compile
[INFO] | | | \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] | | | \- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] | | \- org.springframework.security:spring-security-jwt:jar:1.0.9.RELEASE:compile
[INFO] | | \- org.bouncycastle:bcpkix-jdk15on:jar:1.56:compile
[INFO] | | \- org.bouncycastle:bcprov-jdk15on:jar:1.56:compile
[INFO] | \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] +- org.glassfish.jaxb:jaxb-runtime:jar:2.3.2:compile
[INFO] | +- jakarta.xml.bind:jakarta.xml.bind-api:jar:4.0.0:compile
[INFO] | +- org.glassfish.jaxb:txw2:jar:4.0.1:compile
[INFO] | +- com.sun.istack:istack-commons-runtime:jar:4.1.1:compile
[INFO] | +- org.jvnet.staxex:stax-ex:jar:2.1.0:compile
[INFO] | +- com.sun.xml.fastinfoset:FastInfoset:jar:2.1.0:compile
[INFO] | \- jakarta.activation:jakarta.activation-api:jar:2.1.1:compile
[INFO] +- com.sun.xml.bind:jaxb-core:jar:3.0.2:compile
[INFO] | \- com.sun.activation:jakarta.activation:jar:2.0.1:compile
[INFO] +- com.sun.xml.bind:jaxb-impl:jar:2.3.0:compile
[INFO] +- javax.xml.bind:jaxb-api:jar:2.4.0-b180830.0359:compile
[INFO] +- com.fasterxml.jackson.dataformat:jackson-dataformat-xml:jar:2.13.0:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-core:jar:2.14.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.14.1:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.14.1:compile
[INFO] | +- org.codehaus.woodstox:stax2-api:jar:4.2.1:compile
[INFO] | \- com.fasterxml.woodstox:woodstox-core:jar:6.2.6:compile
[INFO] +- net.sourceforge.jtds:jtds:jar:1.3.1:compile
[INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:3.0.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-aop:jar:3.0.2:compile
[INFO] | | \- org.aspectj:aspectjweaver:jar:1.9.19:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-jdbc:jar:3.0.2:compile
[INFO] | | +- com.zaxxer:HikariCP:jar:5.0.1:compile
[INFO] | | \- org.springframework:spring-jdbc:jar:6.0.4:compile
[INFO] | +- org.hibernate.orm:hibernate-core:jar:6.1.6.Final:compile
[INFO] | | +- jakarta.persistence:jakarta.persistence-api:jar:3.1.0:compile
[INFO] | | +- jakarta.transaction:jakarta.transaction-api:jar:2.0.1:compile
[INFO] | | +- org.jboss.logging:jboss-logging:jar:3.5.0.Final:runtime
[INFO] | | +- org.hibernate.common:hibernate-commons-annotations:jar:6.0.2.Final:runtime
[INFO] | | +- org.jboss:jandex:jar:2.4.2.Final:runtime
[INFO] | | +- com.fasterxml:classmate:jar:1.5.1:runtime
[INFO] | | +- net.bytebuddy:byte-buddy:jar:1.12.22:runtime
[INFO] | | +- jakarta.inject:jakarta.inject-api:jar:2.0.0:runtime
[INFO] | | \- org.antlr:antlr4-runtime:jar:4.10.1:runtime
[INFO] | +- org.springframework.data:spring-data-jpa:jar:3.0.1:compile
[INFO] | | \- org.springframework:spring-orm:jar:6.0.4:compile
[INFO] | \- org.springframework:spring-aspects:jar:6.0.4:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:3.0.2:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:3.0.2:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.14.1:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.14.1:compile
[INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.14.1:compile
[INFO] | +- org.springframework:spring-web:jar:6.0.4:compile
[INFO] | \- org.springframework:spring-webmvc:jar:6.0.4:compile
[INFO] | \- org.springframework:spring-expression:jar:6.0.4:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.18.0:compile
[INFO] +- org.apache.logging.log4j:log4j-api:jar:2.18.0:compile
[INFO] +- org.apache.logging.log4j:log4j-jul:jar:2.18.0:compile
[INFO] +- org.apache.logging.log4j:log4j-slf4j-impl:jar:2.18.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-log4j2:jar:2.6.3:compile
[INFO] | \- org.slf4j:jul-to-slf4j:jar:2.0.6:compile
[INFO] +- org.springframework.boot:spring-boot-starter-jetty:jar:3.0.2:compile
[INFO] | +- jakarta.servlet:jakarta.servlet-api:jar:6.0.0:compile
[INFO] | +- jakarta.websocket:jakarta.websocket-api:jar:2.1.0:compile
[INFO] | +- jakarta.websocket:jakarta.websocket-client-api:jar:2.1.0:compile
[INFO] | +- org.apache.tomcat.embed:tomcat-embed-el:jar:10.1.5:compile
[INFO] | +- org.eclipse.jetty:jetty-servlets:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty:jetty-http:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty:jetty-util:jar:11.0.13:compile
[INFO] | | \- org.eclipse.jetty:jetty-io:jar:11.0.13:compile
[INFO] | +- org.eclipse.jetty:jetty-webapp:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty:jetty-servlet:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty:jetty-security:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty:jetty-server:jar:11.0.13:compile
[INFO] | | \- org.eclipse.jetty:jetty-xml:jar:11.0.13:compile
[INFO] | +- org.eclipse.jetty.websocket:websocket-jakarta-server:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty.websocket:websocket-jakarta-client:jar:11.0.13:compile
[INFO] | | | +- org.eclipse.jetty.websocket:websocket-jakarta-common:jar:11.0.13:compile
[INFO] | | | +- org.eclipse.jetty.websocket:websocket-core-client:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty:jetty-client:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty:jetty-alpn-client:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty.websocket:websocket-servlet:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty.websocket:websocket-core-server:jar:11.0.13:compile
[INFO] | | \- org.eclipse.jetty:jetty-annotations:jar:11.0.13:compile
[INFO] | | +- org.eclipse.jetty:jetty-plus:jar:11.0.13:compile
[INFO] | | | \- org.eclipse.jetty:jetty-jndi:jar:11.0.13:compile
[INFO] | | +- org.ow2.asm:asm:jar:9.4:compile
[INFO] | | \- org.ow2.asm:asm-commons:jar:9.4:compile
[INFO] | | \- org.ow2.asm:asm-tree:jar:9.4:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-jetty-server:jar:11.0.13:compile
[INFO] | +- org.eclipse.jetty.websocket:websocket-jetty-api:jar:11.0.13:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-jetty-common:jar:11.0.13:compile
[INFO] | \- org.eclipse.jetty.websocket:websocket-core-common:jar:11.0.13:compile
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:3.0.2:compile
[INFO] | +- org.springframework.boot:spring-boot-actuator-autoconfigure:jar:3.0.2:compile
[INFO] | | \- org.springframework.boot:spring-boot-actuator:jar:3.0.2:compile
[INFO] | \- io.micrometer:micrometer-observation:jar:1.10.3:compile
[INFO] | \- io.micrometer:micrometer-commons:jar:1.10.3:compile
[INFO] +- org.springframework.cloud:spring-cloud-starter-netflix-eureka-client:jar:3.1.0:compile
[INFO] | +- org.springframework.cloud:spring-cloud-starter:jar:3.1.0:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-context:jar:3.1.0:compile
[INFO] | | | \- org.springframework.security:spring-security-crypto:jar:6.0.1:compile
[INFO] | | +- org.springframework.cloud:spring-cloud-commons:jar:3.1.0:compile
[INFO] | | \- org.springframework.security:spring-security-rsa:jar:1.0.10.RELEASE:compile
[INFO] | +- org.springframework.cloud:spring-cloud-netflix-eureka-client:jar:3.1.0:compile
[INFO] | +- com.netflix.eureka:eureka-client:jar:1.10.17:compile
[INFO] | | +- com.netflix.netflix-commons:netflix-eventbus:jar:0.3.0:compile
[INFO] | | | +- com.netflix.netflix-commons:netflix-infix:jar:0.3.0:runtime
[INFO] | | | | +- commons-jxpath:commons-jxpath:jar:1.3:runtime
[INFO] | | | | +- joda-time:joda-time:jar:2.3:runtime
[INFO] | | | | +- org.antlr:antlr-runtime:jar:3.4:runtime
[INFO] | | | | | +- org.antlr:stringtemplate:jar:3.2.1:runtime
[INFO] | | | | | \- antlr:antlr:jar:2.7.7:runtime
[INFO] | | | | \- com.google.code.gson:gson:jar:2.9.1:runtime
[INFO] | | | \- org.apache.commons:commons-math:jar:2.2:runtime
[INFO] | | +- com.thoughtworks.xstream:xstream:jar:1.4.18:compile
[INFO] | | | \- io.github.x-stream:mxparser:jar:1.2.2:compile
[INFO] | | | \- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | | +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] | | +- com.netflix.servo:servo-core:jar:0.12.21:compile
[INFO] | | | \- com.google.guava:guava:jar:19.0:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.10:compile
[INFO] | | | \- commons-lang:commons-lang:jar:2.6:compile
[INFO] | | +- com.google.inject:guice:jar:4.1.0:compile
[INFO] | | | \- javax.inject:javax.inject:jar:1:compile
[INFO] | | \- org.codehaus.jettison:jettison:jar:1.4.0:runtime
[INFO] | +- com.netflix.eureka:eureka-core:jar:1.10.17:compile
[INFO] | \- org.springframework.cloud:spring-cloud-starter-loadbalancer:jar:3.1.0:compile
[INFO] | +- org.springframework.cloud:spring-cloud-loadbalancer:jar:3.1.0:compile
[INFO] | | +- io.projectreactor:reactor-core:jar:3.5.2:compile
[INFO] | | | \- org.reactivestreams:reactive-streams:jar:1.0.4:compile
[INFO] | | \- io.projectreactor.addons:reactor-extra:jar:3.5.0:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-cache:jar:3.0.2:compile
[INFO] | \- com.stoyanr:evictor:jar:1.0.0:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:3.0.2:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:3.0.2:test
[INFO] | +- com.jayway.jsonpath:json-path:jar:2.7.0:compile
[INFO] | | \- net.minidev:json-smart:jar:2.4.8:compile
[INFO] | | \- net.minidev:accessors-smart:jar:2.4.8:compile
[INFO] | +- org.assertj:assertj-core:jar:3.23.1:test
[INFO] | +- org.hamcrest:hamcrest:jar:2.2:test
[INFO] | +- org.junit.jupiter:junit-jupiter:jar:5.9.2:test
[INFO] | | +- org.junit.jupiter:junit-jupiter-api:jar:5.9.2:test
[INFO] | | | +- org.opentest4j:opentest4j:jar:1.2.0:test
[INFO] | | | +- org.junit.platform:junit-platform-commons:jar:1.9.2:test
[INFO] | | | \- org.apiguardian:apiguardian-api:jar:1.1.2:test
[INFO] | | +- org.junit.jupiter:junit-jupiter-params:jar:5.9.2:test
[INFO] | | \- org.junit.jupiter:junit-jupiter-engine:jar:5.9.2:test
[INFO] | | \- org.junit.platform:junit-platform-engine:jar:1.9.2:test
[INFO] | +- org.mockito:mockito-core:jar:4.8.1:test
[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.12.22:test
[INFO] | | \- org.objenesis:objenesis:jar:3.2:test
[INFO] | +- org.mockito:mockito-junit-jupiter:jar:4.8.1:test
[INFO] | +- org.skyscreamer:jsonassert:jar:1.5.1:test
[INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] | +- org.springframework:spring-test:jar:6.0.4:test
[INFO] | \- org.xmlunit:xmlunit-core:jar:2.9.1:test
[INFO] +- org.springframework.boot:spring-boot-test:jar:3.0.2:compile
[INFO] +- junit:junit:jar:4.13.1:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:2.2:test
[INFO] +- io.micrometer:micrometer-core:jar:1.8.1:compile
[INFO] | +- org.hdrhistogram:HdrHistogram:jar:2.1.12:compile
[INFO] | \- org.latencyutils:LatencyUtils:jar:2.0.3:runtime
[INFO] \- io.micrometer:micrometer-registry-prometheus:jar:1.8.0:compile
[INFO] \- io.prometheus:simpleclient_common:jar:0.16.0:compile
[INFO] \- io.prometheus:simpleclient:jar:0.16.0:compile
[INFO] +- io.prometheus:simpleclient_tracer_otel:jar:0.16.0:compile
[INFO] | \- io.prometheus:simpleclient_tracer_common:jar:0.16.0:compile
[INFO] \- io.prometheus:simpleclient_tracer_otel_agent:jar:0.16.0:compile
[INFO]
Does anyone know which versions of the dependencies are compatible with each other?
I would hazard a guess this is because you have a property defined like so in your original project:
<log4j2.version>2.18.0</log4j2.version>
This is a very normal (and important!) thing to see with Spring Boot 2.x projects because of log4shell - by default Spring Boot 2.6.1 depends on a vulnerable version, so there must be some kind of property like this in the original pom that's bringing it up to 2.18.
Spring Boot 3.0.2 depends on log4j 2.19 which isn't vulnerable, so once again, you must have a property explicitly setting it to 2.18 for this to be an issue. Such a property isn't needed (and as you've found, is a regression that makes it incompatible anyway.)
Delete that explicit log4j2.version property, clean and rebuild, and you should be fine.
Does anyone know which versions of the dependencies are compatible with each other?
Spring-boot does. Stop forcing versions of dependencies managed by boot and you'll stop having incompatibility issues.
Also, you are changing a major version => expect breaking changes and modifications in your code.
Maybe should you refer to migration guide?
Apparently, there is some kind of incompatibility with the log4j version so I had to force it to use version 2.19.0. With that, it worked.
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.19.0</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
<version>3.0.2</version>
<exclusions>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jul</artifactId>
</exclusion>
<exclusion>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
</exclusion>
</exclusions>
</dependency>
I have been struggling with this error for two days now. I am in a spring, maven project, using Intellij.
I have tried every question I found here in SO and nothing. I have tried with a bunch of versions and nothing.
I am completely stuck by the following exception:
java.lang.NoSuchMethodError: javassist.CtClass.getDeclaredClasses()[Ljavassist/CtClass;
at org.powermock.core.transformers.javassist.ConstructorsMockTransformer.transform(ConstructorsMockTransformer.java:50)
at org.powermock.core.transformers.javassist.AbstractJavaAssistMockTransformer.transform(AbstractJavaAssistMockTransformer.java:40)
at org.powermock.core.transformers.support.DefaultMockTransformerChain.transform(DefaultMockTransformerChain.java:43)
at org.powermock.core.classloader.MockClassLoader.transformClass(MockClassLoader.java:184)
at org.powermock.core.classloader.javassist.JavassistMockClassLoader.defineAndTransformClass(JavassistMockClassLoader.java:102)
at org.powermock.core.classloader.MockClassLoader.loadMockClass(MockClassLoader.java:174)
at org.powermock.core.classloader.MockClassLoader.loadClassByThisClassLoader(MockClassLoader.java:102)
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass1(DeferSupportingClassLoader.java:147)
at org.powermock.core.classloader.DeferSupportingClassLoader.loadClass(DeferSupportingClassLoader.java:98)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:348)
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:154)
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.createDelegatorFromClassloader(JUnit4TestSuiteChunkerImpl.java:47)
at org.powermock.tests.utils.impl.AbstractTestSuiteChunkerImpl.createTestDelegators(AbstractTestSuiteChunkerImpl.java:107)
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.<init>(JUnit4TestSuiteChunkerImpl.java:69)
at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.<init>(AbstractCommonPowerMockRunner.java:36)
at org.powermock.modules.junit4.PowerMockRunner.<init>(PowerMockRunner.java:34)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at org.junit.internal.builders.AnnotatedBuilder.buildRunner(AnnotatedBuilder.java:104)
at org.junit.internal.builders.AnnotatedBuilder.runnerForClass(AnnotatedBuilder.java:86)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.builders.AllDefaultPossibilitiesBuilder.runnerForClass(AllDefaultPossibilitiesBuilder.java:26)
at org.junit.runners.model.RunnerBuilder.safeRunnerForClass(RunnerBuilder.java:59)
at org.junit.internal.requests.ClassRequest.getRunner(ClassRequest.java:33)
at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:49)
at com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Here is my code:
test
package com.secondrain.utils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
#RunWith(PowerMockRunner.class)
#PrepareForTest(CompanyManager.class)
public class CompanyTest {
#Test
public void test() {}
}
Everything works perfectly if I remove PowerMock:
package com.secondrain.utils;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.BlockJUnit4ClassRunner;
#RunWith(BlockJUnit4ClassRunner.class)
public class CompanyTest {
#Test
public void test() {}
}
PowerMock dependencies
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-core</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-module-junit4</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.powermock</groupId>
<artifactId>powermock-api-mockito2</artifactId>
<version>2.0.2</version>
<scope>test</scope>
</dependency>
Dependency tree
[INFO] ------------------------------------------------------------------------
[INFO] Building Workbench 1.0.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) # Workbench ---
[INFO] com.secondrain:Workbench:jar:1.0.0
[INFO] +- thirdparty.secondrain:Objects:jar:jdk6:1.1:compile
[INFO] | +- thirdparty.secondrain:fr-common-db:jar:jdk6:1.0:compile
[INFO] | | +- thirdparty.secondrain:fr-common-utils:jar:jdk6:1.1:compile
[INFO] | | | +- commons-digester:commons-digester:jar:1.8.1:compile
[INFO] | | | +- thirdparty.xml-apis:xml-apis:jar:0:compile
[INFO] | | | +- thirdparty:lingpipe:jar:3.1.1:compile
[INFO] | | | +- thirdparty.activation:activation:jar:1.1.1:compile
[INFO] | | | +- commons-collections:commons-collections:jar:3.2.1:compile
[INFO] | | | +- opensymphony:quartz:jar:1.5.0:compile
[INFO] | | | +- isorelax:isorelax:jar:20030108:compile
[INFO] | | | +- thirdparty.javamail:mail:jar:1.3.1:compile
[INFO] | | | +- com.google.guava:guava:jar:14.0.1:compile
[INFO] | | | +- commons-io:commons-io:jar:2.1:compile
[INFO] | | | +- thirdparty:jce:jar:1.2.2:compile
[INFO] | | | +- thirdparty:sunjce_provider-cv:jar:1.0:compile
[INFO] | | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.5.1:compile
[INFO] | | | +- com.fasterxml.jackson.core:jackson-core:jar:2.5.1:compile
[INFO] | | | \- com.fasterxml.jackson.core:jackson-databind:jar:2.5.1:compile
[INFO] | | +- thirdparty.secondrain:replication:jar:1.0:compile
[INFO] | | +- relaxngDatatype:relaxngDatatype:jar:20020414:compile
[INFO] | | +- xsdlib:xsdlib:jar:20030225:compile
[INFO] | | +- msv:msv:jar:20030225:compile
[INFO] | | +- commons-dbutils:commons-dbutils:jar:1.0:compile
[INFO] | | +- commons-dbcp:commons-dbcp:jar:1.2.2:compile
[INFO] | | +- org.hibernate:hibernate-entitymanager:jar:3.4.0.GA:compile
[INFO] | | | +- org.hibernate:hibernate-commons-annotations:jar:3.1.0.GA:compile
[INFO] | | | +- org.hibernate:hibernate-annotations:jar:3.4.0.GA:compile
[INFO] | | | +- dom4j:dom4j:jar:1.6.1:compile
[INFO] | | | \- javax.transaction:jta:jar:1.1:compile
[INFO] | | +- org.hibernate:hibernate-core:jar:3.3.1.GA:compile
[INFO] | | | \- antlr:antlr:jar:2.7.6:compile
[INFO] | | +- org.hibernate:hibernate-jmx:jar:3.3.1.GA:compile
[INFO] | | +- org.hibernate:hibernate-cglib-repack:jar:2.1_3:compile
[INFO] | | +- org.hibernate:hibernate-c3p0:jar:3.3.1.GA:compile
[INFO] | | | \- c3p0:c3p0:jar:0.9.1:compile
[INFO] | | +- org.slf4j:slf4j-api:jar:1.6.6:compile
[INFO] | | +- org.slf4j:slf4j-log4j12:jar:1.6.6:compile
[INFO] | | \- commons-pool:commons-pool:jar:1.6:compile
[INFO] | +- commons-lang:commons-lang:jar:2.6:compile
[INFO] | +- org.apache.xmlbeans:xmlbeans:jar:2.3.0:compile
[INFO] | +- poi:poi:jar:3.6-20091214:compile
[INFO] | +- poi:poi-ooxml:jar:3.6-20091214:compile
[INFO] | +- poi:poi-ooxml-schemas:jar:3.6-20091214:compile
[INFO] | \- commons-httpclient:commons-httpclient:jar:3.0.1:compile
[INFO] | \- commons-codec:commons-codec:jar:1.2:compile
[INFO] +- com.secondrain:Extraction:jar:1.0.0:compile
[INFO] | +- com.secondrain:ContentProducers:jar:1.0.0:compile
[INFO] | | \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | +- thirdparty.secondrain:ImageServiceClient:jar:jdk6:1.0:compile
[INFO] | | +- thirdparty.secondrain:HtmlParser:jar:jdk6:1.0:compile
[INFO] | | | +- org.ccil.cowan.tagsoup:tagsoup:jar:1.2:compile
[INFO] | | | \- thirdparty.tika-app:tika-app-1.4Custom:jar:0:compile
[INFO] | | +- com.sun.jersey:jersey-client:jar:1.0.2:compile
[INFO] | | +- com.sun.jersey:jersey-core:jar:1.0.2:compile
[INFO] | | \- javax.ws.rs:jsr311-api:jar:1.0:compile
[INFO] | +- commons-beanutils:commons-beanutils:jar:1.8.0:compile
[INFO] | +- com.google.code.gson:gson:jar:2.2.4:compile
[INFO] | +- thirdparty.solr.commons:commons-csv:jar:1.0-SNAPSHOT-r609327:compile
[INFO] | +- thirdparty.jcommon:jcommon:jar:1.0.13:compile
[INFO] | +- thirdparty.lang:jsonic:jar:1.2.4:compile
[INFO] | +- org.rhq.helpers:rhq-pluginAnnotations:jar:3.0.4:compile
[INFO] | +- thirdparty.xalan:xalan:jar:2.5.2:compile
[INFO] | +- thirdparty.lang:langdetect:jar:0:compile
[INFO] | +- thirdparty.stanford-corenlp:stanford-corenlp:jar:3.3.1:compile
[INFO] | +- thirdparty.stanford-corenlpmodel:stanford-corenlpmodel:jar:models:0:compile
[INFO] | +- org.jsoup:jsoup:jar:1.8.1:compile
[INFO] | \- net.openhft:chronicle-map:jar:3.9.0:compile
[INFO] | +- net.openhft:chronicle-core:jar:1.6.2:compile
[INFO] | +- net.openhft:chronicle-values:jar:1.5.1:compile
[INFO] | | +- com.sun.java:tools:jar:1.8.0_231:system
[INFO] | | \- com.squareup:javapoet:jar:1.5.1:compile
[INFO] | +- net.openhft:chronicle-threads:jar:1.6.1:compile
[INFO] | | \- net.openhft:affinity:jar:3.0.5:compile
[INFO] | +- com.intellij:annotations:jar:12.0:compile
[INFO] | +- net.openhft:chronicle-wire:jar:1.6.2:compile
[INFO] | +- net.openhft:chronicle-bytes:jar:1.6.1:compile
[INFO] | +- net.openhft:chronicle-algorithms:jar:1.1.7:compile
[INFO] | +- net.java.dev.jna:jna:jar:4.2.1:compile
[INFO] | +- net.java.dev.jna:jna-platform:jar:4.2.1:compile
[INFO] | +- com.thoughtworks.xstream:xstream:jar:1.4.8:compile
[INFO] | | +- xmlpull:xmlpull:jar:1.1.3.1:compile
[INFO] | | \- xpp3:xpp3_min:jar:1.1.4c:compile
[INFO] | +- org.codehaus.jettison:jettison:jar:1.3.7:compile
[INFO] | | \- stax:stax-api:jar:1.0.1:compile
[INFO] | \- org.ops4j.pax.url:pax-url-aether:jar:2.4.5:compile
[INFO] | \- org.slf4j:jcl-over-slf4j:jar:1.6.6:compile
[INFO] +- com.secondrain:Tools:jar:1.0.0:compile
[INFO] | +- thirdparty.secondrain:ContentProcessingFramework:jar:jdk6:1.0:compile
[INFO] | | +- displaytag:displaytag-export-poi:jar:1.1:compile
[INFO] | | +- org.jboss:jboss-common-core:jar:2.2.13.GA:compile
[INFO] | | +- org.jboss.logging:jboss-logging-spi:jar:2.0.5.GA:compile
[INFO] | | +- org.jboss:staxmapper:jar:1.1.0.Final:compile
[INFO] | | +- org.infinispan:infinispan-core:jar:6.0.0.Final:compile
[INFO] | | | +- org.infinispan:infinispan-commons:jar:6.0.0.Final:compile
[INFO] | | | +- org.jgroups:jgroups:jar:3.4.1.Final:compile
[INFO] | | | +- org.jboss.spec.javax.transaction:jboss-transaction-api_1.1_spec:jar:1.0.1.Final:compile
[INFO] | | | +- org.jboss.marshalling:jboss-marshalling-river:jar:1.3.18.GA:compile
[INFO] | | | +- org.jboss.marshalling:jboss-marshalling:jar:1.3.18.GA:compile
[INFO] | | | \- org.jboss.logging:jboss-logging:jar:3.1.2.GA:compile
[INFO] | | \- displaytag:displaytag:jar:1.1:compile
[INFO] | | \- com.lowagie:itext:jar:1.3:compile
[INFO] | +- thirdparty.secondrain:FrameworkCommonUtils:jar:jdk6:1.0:compile
[INFO] | | +- thirdparty.fr-search.frdoc:frdoc:jar:Provided:compile
[INFO] | | +- thirdparty.fastutil:fastutil:jar:5.1.5:compile
[INFO] | | +- thirdparty.wordnet:jaws-bin:jar:1.0:compile
[INFO] | | +- com.googlecode.matrix-toolkits-java:mtj:jar:0.9.14:compile
[INFO] | | | \- com.googlecode.netlib-java:netlib-java:jar:0.9.3:compile
[INFO] | | | \- net.sourceforge.f2j:arpack_combined_all:jar:0.1:compile
[INFO] | | +- org.mapdb:mapdb:jar:1.0.7:compile
[INFO] | | \- org.apache.httpcomponents:httpclient:jar:4.4:compile
[INFO] | | \- org.apache.httpcomponents:httpcore:jar:4.4:compile
[INFO] | +- thirdparty.secondrain:FRSolrExtension:jar:jdk6:1.2:compile
[INFO] | | +- thirdparty.secondrain:FRSharedAPIServlet:jar:jdk6:1.0:compile
[INFO] | | +- net.sf.json-lib:json-lib:jar:jdk15:2.2.3:compile
[INFO] | | +- thirdparty.secondrain.solr:solr-solrj:jar:1.4.1:compile
[INFO] | | | +- commons-fileupload:commons-fileupload:jar:1.2:compile
[INFO] | | | +- org.apache.lucene:lucene-core:jar:2.9.3:compile
[INFO] | | | +- org.codehaus.woodstox:wstx-asl:jar:3.2.7:compile
[INFO] | | | \- org.apache.geronimo.specs:geronimo-stax-api_1.0_spec:jar:1.0.1:compile
[INFO] | | +- org.codehaus.jackson:jackson-core-lgpl:jar:1.5.3:compile
[INFO] | | \- org.codehaus.jackson:jackson-mapper-lgpl:jar:1.5.3:compile
[INFO] | +- thirdparty.secondrain:IndexEngine:jar:1.0.0:compile
[INFO] | | +- thirdparty.fr-search.IEngine.clientSDK.idsdk:fridsdk:jar:1.0:compile
[INFO] | | +- javax.servlet:javax.servlet-api:jar:3.0.1:compile
[INFO] | | +- thirdparty.tanukisoft:wrapper:jar:0:compile
[INFO] | | \- log4j:log4j:jar:1.2.16:compile
[INFO] | +- thirdparty.sqljdbc:sqljdbc:jar:0:compile
[INFO] | \- thirdparty.jxl:jxl:jar:0:compile
[INFO] +- org.springframework:spring-aop:jar:3.0.1.RELEASE:compile
[INFO] | +- aopalliance:aopalliance:jar:1.0:compile
[INFO] | \- org.springframework:spring-asm:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-beans:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-context:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-context-support:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-core:jar:3.0.1.RELEASE:compile
[INFO] | \- commons-logging:commons-logging:jar:1.1.1:compile
[INFO] +- org.springframework:spring-expression:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-web:jar:3.0.1.RELEASE:compile
[INFO] +- org.springframework:spring-webmvc:jar:3.0.1.RELEASE:compile
[INFO] +- net.sf.ezmorph:ezmorph:jar:1.0.6:compile
[INFO] +- struts:struts:jar:1.2.4:compile
[INFO] +- thirdparty.jwnl:jwnl:jar:0:compile
[INFO] +- commons-net:commons-net:jar:1.2.1:compile
[INFO] | \- oro:oro:jar:2.0.8:compile
[INFO] +- xmlunit:xmlunit:jar:1.0:compile
[INFO] +- backport-util-concurrent:backport-util-concurrent:jar:3.0:compile
[INFO] +- thirdparty.secondrain:frDB:jar:jdk6:1.0:compile
[INFO] | \- org.hibernate:ejb3-persistence:jar:1.0.2.GA:compile
[INFO] +- javax.servlet:jstl:jar:1.1.2:compile
[INFO] +- taglibs:standard:jar:1.1.2:compile
[INFO] +- thirdparty.secondrain:frDocMgr:jar:1.0:compile
[INFO] | \- thirdparty.secondrain:frMessageService:jar:1.0.0:compile
[INFO] | \- thirdparty.secondrain:Jamsel:jar:1.0.0:compile
[INFO] +- thirdparty.secondrain:EntityDomainModel:jar:jdk6:1.0:compile
[INFO] | \- thirdparty.qazi:qazi:jar:Provided-1.2:compile
[INFO] +- org.powermock:powermock-core:jar:2.0.2:test
[INFO] | +- org.powermock:powermock-reflect:jar:2.0.2:test
[INFO] | | \- org.objenesis:objenesis:jar:3.0.1:test
[INFO] | +- org.javassist:javassist:jar:3.24.0-GA:test
[INFO] | +- net.bytebuddy:byte-buddy:jar:1.9.3:test
[INFO] | \- net.bytebuddy:byte-buddy-agent:jar:1.9.3:test
[INFO] +- org.powermock:powermock-module-junit4:jar:2.0.2:test
[INFO] | +- org.powermock:powermock-module-junit4-common:jar:2.0.2:test
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.powermock:powermock-api-mockito2:jar:2.0.2:test
[INFO] | +- org.powermock:powermock-api-support:jar:2.0.2:test
[INFO] | \- org.mockito:mockito-core:jar:2.23.0:test
[INFO] \- junit:junit:jar:4.12:test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.051 s
[INFO] Finished at: 2019-11-23T09:15:59-03:00
[INFO] Final Memory: 18M/309M
[INFO] ------------------------------------------------------------------------
mvn -v
Apache Maven 3.3.9 (bb52d8502b132ec0a5a3f4c09453c07478323dc5; 2015-11-10T13:41:47-03:00)
Maven home: C:\Users\Usuario\apache-maven-3.3.9\bin\..
Java version: 1.8.0_231, vendor: Oracle Corporation
Java home: C:\Program Files\Java\jdk1.8.0_231\jre
Default locale: es_ES, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "dos"
java -version
java version "1.8.0_231"
Java(TM) SE Runtime Environment (build 1.8.0_231-b11)
Java HotSpot(TM) 64-Bit Server VM (build 25.231-b11, mixed mode)
First of all, this:
javassist.CtClass.getDeclaredClasses()[Ljavassist/CtClass;
returns to a method in javassist.CtClass that has the signature
<modifier> javassist.CtClass getDeclaredClasses()
According to the published javadocs the "missing" method was added in javassist version 3.15.
So the immediate explanation is that the first JAR file for javassist that the JVM found on the runtime classpath was for an older version.
The Maven dependency tree shows that PowerMock 2.0.2 depends on
org.javassist:javassist:jar:3.24.0-GA
But clearly there was another version of the JAR on the runtime classpath when you were running the tests. Mystery!
You then say that a clean project with the same dependencies doesn't have this problem. At least that makes sense. (To me.)
How to solve this?
There must a copy or copies of older (pre 3.15) javassist JAR files on your machine. Find it or them. For example, on Linux find $HOME -name javassist\* -type f, and then eyeball the pathnames.
Next, try to find out what classpath is being used when you are running the tests.
If you are running them using a maven command, the -X (debug) option will show you a lot of extra information. According to Find classpath maven is using for running testng testcase, this includes the actual classpath.
If you are using a test runner in your IDE, check the IDE documentation.
Finally, analyse the classpath to find why there is an old javassist JAR on the path.
FWIW, my guess would be that you are running the tests in an IDE, and that somehow the IDE is adding the spurious JAR. This could have been a transitive dependency of an old (or upgraded) dependency that wasn't properly cleaned out by the IDE.
I know, it was long time ago, but I found this in a vietnamite forum; this solution excludes the spurious JAR added by the IDE ... it was useful in my case
<dependency>
<groupId>javassist</groupId>
<artifactId>javassist</artifactId>
<version>3.12.1.GA</version>
<scope>test</scope>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
I'm using Java 11, Spring Boot 2.1.1 and Apache CXF 3.2.7 to expose a SOAP web service that imports an XSD schema. In the WSDL it shows like:
<wsdl:import location="http://localhost:9000/endpoint/ws?wsdl=WS_endpointSoapPort.wsdl" namespace="http://test.com"> </wsdl:import>
When I send a query it fails with the following stack:
2018-12-31 12:05:54,908 ERROR se.[Tomcat].[localhost].[/].[CXFServlet]: 175 - Servlet.service() for servlet [CXFServlet] in context with path [] threw exception [Servlet execution threw an exception] with root cause
java.lang.NoSuchMethodError: org.codehaus.stax2.ri.EmptyIterator.getInstance()Lorg/codehaus/stax2/ri/EmptyIterator;
Any thoughts?
I had a conflict on the org.codehaus.woodstox:stax2-api which was included in version 3.1.4 within org.apache.cxf:cxf-core and in version 4.1 within com.sun.xml.ws:rt. I solved the conflict by removing the library using Maven excludes:
<exclusions>
<exclusion>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId><!-- 4.1 conflicts with 3.1.4 from apache cxf-spring-boot-starter-jaxws-->
</exclusion>
</exclusions>
After research in deeply, I found the following JIRA that mentions a problem with Stax2 version. BTW the ticket said that it resolves with the version that I'm using.
In the end, I fixed upgrading to woodstox-core-5.2.0. In fact, the library mentions a similar problem that was solved in that version. Details here.
My current mvn dependency:tree is:
[INFO] +- org.springframework.boot:spring-boot-starter:jar:2.1.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot:jar:2.1.1.RELEASE:compile
[INFO] | | \- org.springframework:spring-context:jar:5.1.3.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-logging:jar:2.1.1.RELEASE:compile
[INFO] | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile
[INFO] | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile
[INFO] | | +- org.apache.logging.log4j:log4j-to-slf4j:jar:2.11.1:compile
[INFO] | | | \- org.apache.logging.log4j:log4j-api:jar:2.11.1:compile
[INFO] | | \- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] | +- javax.annotation:javax.annotation-api:jar:1.3.2:compile
[INFO] | +- org.springframework:spring-core:jar:5.1.3.RELEASE:compile
[INFO] | | \- org.springframework:spring-jcl:jar:5.1.3.RELEASE:compile
[INFO] | \- org.yaml:snakeyaml:jar:1.23:runtime
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.1.1.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-json:jar:2.1.1.RELEASE:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.7:compile
[INFO] | | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] | | | \- com.fasterxml.jackson.core:jackson-core:jar:2.9.7:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jdk8:jar:2.9.7:compile
[INFO] | | +- com.fasterxml.jackson.datatype:jackson-datatype-jsr310:jar:2.9.7:compile
[INFO] | | \- com.fasterxml.jackson.module:jackson-module-parameter-names:jar:2.9.7:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:2.1.1.RELEASE:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.13:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.13:compile
[INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.13:compile
[INFO] | +- org.hibernate.validator:hibernate-validator:jar:6.0.13.Final:compile
[INFO] | | +- org.jboss.logging:jboss-logging:jar:3.3.2.Final:compile
[INFO] | | \- com.fasterxml:classmate:jar:1.4.0:compile
[INFO] | +- org.springframework:spring-web:jar:5.1.3.RELEASE:compile
[INFO] | | \- org.springframework:spring-beans:jar:5.1.3.RELEASE:compile
[INFO] | \- org.springframework:spring-webmvc:jar:5.1.3.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:5.1.3.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:5.1.3.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-autoconfigure:jar:2.1.1.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:2.1.1.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test:jar:2.1.1.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:2.1.1.RELEASE:test
[INFO] | +- com.jayway.jsonpath:json-path:jar:2.4.0:test
[INFO] | | \- net.minidev:json-smart:jar:2.3:test
[INFO] | | \- net.minidev:accessors-smart:jar:1.2:test
[INFO] | +- junit:junit:jar:4.12:test
[INFO] | +- org.assertj:assertj-core:jar:3.11.1:test
[INFO] | +- org.mockito:mockito-core:jar:2.23.4:test
[INFO] | | +- net.bytebuddy:byte-buddy:jar:1.9.5:test
[INFO] | | +- net.bytebuddy:byte-buddy-agent:jar:1.9.5:test
[INFO] | | \- org.objenesis:objenesis:jar:2.6:test
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] | +- org.skyscreamer:jsonassert:jar:1.5.0:test
[INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] | +- org.springframework:spring-test:jar:5.1.3.RELEASE:test
[INFO] | \- org.xmlunit:xmlunit-core:jar:2.6.2:test
[INFO] +- org.apache.cxf:cxf-spring-boot-starter-jaxws:jar:3.2.7:compile
[INFO] | +- org.apache.cxf:cxf-spring-boot-autoconfigure:jar:3.2.7:compile
[INFO] | +- org.apache.cxf:cxf-rt-frontend-jaxws:jar:3.2.7:compile
[INFO] | | +- xml-resolver:xml-resolver:jar:1.2:compile
[INFO] | | +- org.ow2.asm:asm:jar:6.2:compile
[INFO] | | +- org.apache.cxf:cxf-rt-bindings-xml:jar:3.2.7:compile
[INFO] | | +- org.apache.cxf:cxf-rt-frontend-simple:jar:3.2.7:compile
[INFO] | | \- org.apache.cxf:cxf-rt-ws-addr:jar:3.2.7:compile
[INFO] | | \- org.apache.cxf:cxf-rt-ws-policy:jar:3.2.7:compile
[INFO] | \- javax.validation:validation-api:jar:2.0.1.Final:compile
[INFO] +- com.fasterxml.woodstox:woodstox-core:jar:5.2.0:compile
[INFO] | \- org.codehaus.woodstox:stax2-api:jar:4.1:compile
[INFO] +- org.apache.cxf:cxf-rt-transports-http:jar:3.2.7:compile
[INFO] | \- org.apache.cxf:cxf-core:jar:3.2.7:compile
[INFO] | \- org.apache.ws.xmlschema:xmlschema-core:jar:2.2.3:compile
[INFO] +- org.apache.cxf:cxf-rt-ws-security:jar:3.2.7:compile
[INFO] | +- org.apache.cxf:cxf-rt-bindings-soap:jar:3.2.7:compile
[INFO] | | +- org.apache.cxf:cxf-rt-wsdl:jar:3.2.7:compile
[INFO] | | | \- wsdl4j:wsdl4j:jar:1.6.3:compile
[INFO] | | \- org.apache.cxf:cxf-rt-databinding-jaxb:jar:3.2.7:compile
[INFO] | +- org.apache.cxf:cxf-rt-security-saml:jar:3.2.7:compile
[INFO] | | \- org.apache.cxf:cxf-rt-security:jar:3.2.7:compile
[INFO] | +- net.sf.ehcache:ehcache:jar:2.10.6:compile
[INFO] | +- org.apache.wss4j:wss4j-ws-security-dom:jar:2.2.2:compile
[INFO] | | \- org.apache.wss4j:wss4j-ws-security-common:jar:2.2.2:compile
[INFO] | | +- org.apache.santuario:xmlsec:jar:2.1.2:compile
[INFO] | | | \- commons-codec:commons-codec:jar:1.11:compile
[INFO] | | +- org.opensaml:opensaml-saml-impl:jar:3.3.0:compile
[INFO] | | | +- org.opensaml:opensaml-profile-api:jar:3.3.0:compile
[INFO] | | | | \- org.opensaml:opensaml-core:jar:3.3.0:compile
[INFO] | | | | \- io.dropwizard.metrics:metrics-core:jar:4.0.3:compile
[INFO] | | | +- org.opensaml:opensaml-saml-api:jar:3.3.0:compile
[INFO] | | | | +- org.opensaml:opensaml-xmlsec-api:jar:3.3.0:compile
[INFO] | | | | \- org.opensaml:opensaml-soap-api:jar:3.3.0:compile
[INFO] | | | +- org.opensaml:opensaml-security-impl:jar:3.3.0:compile
[INFO] | | | | \- org.opensaml:opensaml-security-api:jar:3.3.0:compile
[INFO] | | | | +- org.cryptacular:cryptacular:jar:1.1.1:compile
[INFO] | | | | \- org.bouncycastle:bcprov-jdk15on:jar:1.54:compile
[INFO] | | | +- org.opensaml:opensaml-xmlsec-impl:jar:3.3.0:compile
[INFO] | | | \- net.shibboleth.utilities:java-support:jar:7.3.0:compile
[INFO] | | | +- com.google.guava:guava:jar:19.0:compile
[INFO] | | | \- joda-time:joda-time:jar:2.10.1:compile
[INFO] | | +- org.opensaml:opensaml-xacml-impl:jar:3.3.0:compile
[INFO] | | | \- org.opensaml:opensaml-xacml-api:jar:3.3.0:compile
[INFO] | | +- org.opensaml:opensaml-xacml-saml-impl:jar:3.3.0:compile
[INFO] | | | \- org.opensaml:opensaml-xacml-saml-api:jar:3.3.0:compile
[INFO] | | +- org.jasypt:jasypt:jar:1.9.2:compile
[INFO] | | \- org.apache.geronimo.javamail:geronimo-javamail_1.4_mail:jar:1.8.4:compile
[INFO] | +- org.apache.wss4j:wss4j-policy:jar:2.2.2:compile
[INFO] | | \- org.apache.neethi:neethi:jar:3.1.1:compile
[INFO] | | \- org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1:compile
[INFO] | | \- javax.xml.stream:stax-api:jar:1.0-2:compile
[INFO] | +- org.apache.wss4j:wss4j-ws-security-stax:jar:2.2.2:compile
[INFO] | | \- org.apache.wss4j:wss4j-bindings:jar:2.2.2:compile
[INFO] | \- org.apache.wss4j:wss4j-ws-security-policy-stax:jar:2.2.2:compile
[INFO] +- org.apache.cxf:cxf-rt-features-logging:jar:3.2.7:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- org.apache.commons:commons-lang3:jar:3.8.1:compile
[INFO] +- org.glassfish.jaxb:jaxb-runtime:jar:2.4.0-b180830.0438:compile
[INFO] | +- javax.xml.bind:jaxb-api:jar:2.3.1:compile
[INFO] | +- org.glassfish.jaxb:txw2:jar:2.4.0-b180830.0438:compile
[INFO] | +- com.sun.istack:istack-commons-runtime:jar:3.0.7:compile
[INFO] | +- org.jvnet.staxex:stax-ex:jar:1.8:compile
[INFO] | +- com.sun.xml.fastinfoset:FastInfoset:jar:1.2.15:compile
[INFO] | \- javax.activation:javax.activation-api:jar:1.2.0:compile
[INFO] +- com.sun.xml.ws:jaxws-rt:pom:2.3.1:compile
[INFO] | +- javax.xml.ws:jaxws-api:jar:2.3.1:compile
[INFO] | +- javax.xml.soap:javax.xml.soap-api:jar:1.4.0:compile
[INFO] | +- javax.jws:javax.jws-api:jar:1.1:compile
[INFO] | +- com.sun.xml.ws:policy:jar:2.7.5:compile
[INFO] | | \- com.sun.activation:javax.activation:jar:1.2.0:compile
[INFO] | +- org.glassfish.gmbal:gmbal-api-only:jar:3.1.0-b001:compile
[INFO] | | \- org.glassfish.external:management-api:jar:3.0.0-b012:compile
[INFO] | +- com.sun.xml.stream.buffer:streambuffer:jar:1.5.6:compile
[INFO] | +- org.jvnet.mimepull:mimepull:jar:1.9.10:compile
[INFO] | +- org.glassfish.ha:ha-api:jar:3.1.9:compile
[INFO] | \- com.sun.xml.messaging.saaj:saaj-impl:jar:1.5.0:compile
[INFO] \- com.sun.xml.ws:rt:jar:2.3.1:compile
I run into the same problem and upgrading to CXF 3.2.7 or later fixed the issue for me.
The key is likely in your mvn:dependency-tree output. In my case:
[INFO] \- org.apache.cxf:cxf-rt-ws-security:jar:3.3.6:compile
[INFO] +- org.apache.cxf:cxf-core:jar:3.3.6:compile
[INFO] | \- com.fasterxml.woodstox:woodstox-core:jar:5.3.0:compile (version managed from 5.0.3)
[INFO] | \- org.codehaus.woodstox:stax2-api:jar:4.2:compile
[INFO] \- org.apache.wss4j:wss4j-policy:jar:2.2.5:compile
[INFO] \- org.apache.neethi:neethi:jar:3.1.1:compile
[INFO] \- org.codehaus.woodstox:woodstox-core-asl:jar:4.4.1:compile
[INFO] \- (org.codehaus.woodstox:stax2-api:jar:3.1.4:compile - omitted for conflict with 4.2)
org.apache.cxf:cxf-rt-ws-security:jar:3.3.6 leads to both version 3.1.4 and version 4.2 of stax2-api because of the very much outdated woodstox-core-asl dependency (from 2014). I will have to see if I can get rid of this, because it leads to the NoSuchMethodFoundError described above.
the problem is in new version of stax2-api new methods added. you can solve the problem by adding new version of the stax2-api. in my case adding
<dependency>
<groupId>org.codehaus.woodstox</groupId>
<artifactId>stax2-api</artifactId>
<version>4.2.1</version>
</dependency>
solved the problem.
This is the "jar hell problem".
You should use the exclusions clause that was mentioned Julien Kronegg.
Sorry for the previous answer that I have deleted.
I'm trying to mix spring boot together with redis.
These are the dependencies:
https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent/1.5.10.RELEASE
https://mvnrepository.com/artifact/org.springframework.data/spring-data-redis/2.0.4.RELEASE
However when I implement the redis beans I get an error:
java.lang.NoSuchMethodError: org.springframework.data.repository.config.RepositoryConfigurationSource.getAttribute(Ljava/lang/String;)Ljava/util/Optional;
Is it possible these 2 dependencies don't mix?
edit: added code
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.redis.connection.jedis.JedisConnectionFactory;
import org.springframework.data.redis.core.RedisTemplate;
#Configuration
public class RedisConfiguration {
#Value("${redis.host}")
private String host;
#Value("${redis.port}")
private int port;
#Value("${redis.pw}")
private String password;
#Value("${redis.user}")
private String user;
#Bean
JedisConnectionFactory jedisConnectionFactory() {
System.out.println("setting up port: " + this.port);
JedisConnectionFactory jedisConFactory
= new JedisConnectionFactory();
jedisConFactory.setHostName(this.host);
jedisConFactory.setClientName(this.user);
jedisConFactory.setPort(this.port);
jedisConFactory.setPassword(this.password);
return jedisConFactory;
}
#Bean
public RedisTemplate<String, Object> redisTemplate() {
RedisTemplate<String, Object> template = new RedisTemplate<>();
template.setConnectionFactory(jedisConnectionFactory());
return template;
}
}
Pom.xml
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.10.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>2.0.4.RELEASE</version>
</dependency>
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.9.0</version>
<type>jar</type>
</dependency>
</dependencies>
dep tree:
[INFO] +- org.springframework.boot:spring-boot-starter-actuator:jar:1.5.10.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter:jar:1.5.10.RELEASE:compile
[INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:1.5.10.RELEASE:compile
[INFO] | | | +- ch.qos.logback:logback-classic:jar:1.1.11:compile
[INFO] | | | | \- ch.qos.logback:logback-core:jar:1.1.11:compile
[INFO] | | | +- org.slf4j:jul-to-slf4j:jar:1.7.25:compile
[INFO] | | | \- org.slf4j:log4j-over-slf4j:jar:1.7.25:compile
[INFO] | | \- org.yaml:snakeyaml:jar:1.17:compile
[INFO] | \- org.springframework.boot:spring-boot-actuator:jar:1.5.10.RELEASE:compile
[INFO] | \- org.springframework:spring-context:jar:4.3.14.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-web:jar:1.5.10.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-tomcat:jar:1.5.10.RELEASE:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-core:jar:8.5.27:compile
[INFO] | | | \- org.apache.tomcat:tomcat-annotations-api:jar:8.5.27:compile
[INFO] | | +- org.apache.tomcat.embed:tomcat-embed-el:jar:8.5.27:compile
[INFO] | | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:8.5.27:compile
[INFO] | +- org.hibernate:hibernate-validator:jar:5.3.6.Final:compile
[INFO] | | +- org.jboss.logging:jboss-logging:jar:3.3.1.Final:compile
[INFO] | | \- com.fasterxml:classmate:jar:1.3.4:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.8.10:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.8.10:compile
[INFO] | +- org.springframework:spring-web:jar:4.3.14.RELEASE:compile
[INFO] | | \- org.springframework:spring-beans:jar:4.3.14.RELEASE:compile
[INFO] | \- org.springframework:spring-webmvc:jar:4.3.14.RELEASE:compile
[INFO] | \- org.springframework:spring-expression:jar:4.3.14.RELEASE:compile
[INFO] +- org.springframework.boot:spring-boot-starter-jersey:jar:1.5.10.RELEASE:compile
[INFO] | +- org.springframework.boot:spring-boot-starter-validation:jar:1.5.10.RELEASE:compile
[INFO] | +- org.glassfish.jersey.core:jersey-server:jar:2.25.1:compile
[INFO] | | +- org.glassfish.jersey.core:jersey-common:jar:2.25.1:compile
[INFO] | | | +- org.glassfish.jersey.bundles.repackaged:jersey-guava:jar:2.25.1:compile
[INFO] | | | \- org.glassfish.hk2:osgi-resource-locator:jar:1.0.1:compile
[INFO] | | +- org.glassfish.jersey.core:jersey-client:jar:2.25.1:compile
[INFO] | | +- javax.ws.rs:javax.ws.rs-api:jar:2.0.1:compile
[INFO] | | +- org.glassfish.jersey.media:jersey-media-jaxb:jar:2.25.1:compile
[INFO] | | +- javax.annotation:javax.annotation-api:jar:1.2:compile
[INFO] | | +- org.glassfish.hk2:hk2-api:jar:2.5.0-b32:compile
[INFO] | | | +- org.glassfish.hk2:hk2-utils:jar:2.5.0-b32:compile
[INFO] | | | \- org.glassfish.hk2.external:aopalliance-repackaged:jar:2.5.0-b32:compile
[INFO] | | +- org.glassfish.hk2.external:javax.inject:jar:2.5.0-b32:compile
[INFO] | | \- org.glassfish.hk2:hk2-locator:jar:2.5.0-b32:compile
[INFO] | +- org.glassfish.jersey.containers:jersey-container-servlet-core:jar:2.25.1:compile
[INFO] | +- org.glassfish.jersey.containers:jersey-container-servlet:jar:2.25.1:compile
[INFO] | +- org.glassfish.jersey.ext:jersey-bean-validation:jar:2.25.1:compile
[INFO] | +- org.glassfish.jersey.ext:jersey-spring3:jar:2.25.1:compile
[INFO] | | +- org.glassfish.hk2:hk2:jar:2.5.0-b32:compile
[INFO] | | | +- org.glassfish.hk2:config-types:jar:2.5.0-b32:compile
[INFO] | | | +- org.glassfish.hk2:hk2-core:jar:2.5.0-b32:compile
[INFO] | | | +- org.glassfish.hk2:hk2-config:jar:2.5.0-b32:compile
[INFO] | | | +- org.glassfish.hk2:hk2-runlevel:jar:2.5.0-b32:compile
[INFO] | | | \- org.glassfish.hk2:class-model:jar:2.5.0-b32:compile
[INFO] | | | \- org.glassfish.hk2.external:asm-all-repackaged:jar:2.5.0-b32:compile
[INFO] | | \- org.glassfish.hk2:spring-bridge:jar:2.5.0-b32:compile
[INFO] | \- org.glassfish.jersey.media:jersey-media-json-jackson:jar:2.25.1:compile
[INFO] | +- org.glassfish.jersey.ext:jersey-entity-filtering:jar:2.25.1:compile
[INFO] | +- com.fasterxml.jackson.jaxrs:jackson-jaxrs-base:jar:2.8.10:compile
[INFO] | \- com.fasterxml.jackson.jaxrs:jackson-jaxrs-json-provider:jar:2.8.10:compile
[INFO] | \- com.fasterxml.jackson.module:jackson-module-jaxb-annotations:jar:2.8.10:compile
[INFO] +- org.springframework.boot:spring-boot-starter-test:jar:1.5.10.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test:jar:1.5.10.RELEASE:test
[INFO] | +- org.springframework.boot:spring-boot-test-autoconfigure:jar:1.5.10.RELEASE:test
[INFO] | +- com.jayway.jsonpath:json-path:jar:2.2.0:test
[INFO] | | \- net.minidev:json-smart:jar:2.2.1:test
[INFO] | | \- net.minidev:accessors-smart:jar:1.1:test
[INFO] | | \- org.ow2.asm:asm:jar:5.0.3:test
[INFO] | +- junit:junit:jar:4.12:test
[INFO] | +- org.assertj:assertj-core:jar:2.6.0:test
[INFO] | +- org.mockito:mockito-core:jar:1.10.19:test
[INFO] | | \- org.objenesis:objenesis:jar:2.1:test
[INFO] | +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] | +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] | +- org.skyscreamer:jsonassert:jar:1.4.0:test
[INFO] | | \- com.vaadin.external.google:android-json:jar:0.0.20131108.vaadin1:test
[INFO] | +- org.springframework:spring-core:jar:4.3.14.RELEASE:compile
[INFO] | \- org.springframework:spring-test:jar:4.3.14.RELEASE:test
[INFO] +- com.zaxxer:HikariCP:jar:2.5.1:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.25:compile
[INFO] +- org.webjars:webjars-locator:jar:0.32-1:compile
[INFO] | \- org.webjars:webjars-locator-core:jar:0.32:compile
[INFO] | \- org.apache.commons:commons-compress:jar:1.9:compile
[INFO] +- org.webjars:bootstrap:jar:4.0.0:compile
[INFO] | +- org.webjars:jquery:jar:3.0.0:compile
[INFO] | \- org.webjars.npm:popper.js:jar:1.11.1:compile
[INFO] +- org.springframework.boot:spring-boot-devtools:jar:1.5.10.RELEASE:runtime
[INFO] | +- org.springframework.boot:spring-boot:jar:1.5.10.RELEASE:compile
[INFO] | \- org.springframework.boot:spring-boot-autoconfigure:jar:1.5.10.RELEASE:compile
[INFO] +- io.swagger:swagger-jersey2-jaxrs:jar:1.5.13:compile
[INFO] | \- org.glassfish.jersey.media:jersey-media-multipart:jar:2.25.1:compile
[INFO] | \- org.jvnet.mimepull:mimepull:jar:1.9.6:compile
[INFO] +- io.swagger:swagger-jaxrs:jar:1.5.13:compile
[INFO] | +- javax.ws.rs:jsr311-api:jar:1.1.1:compile
[INFO] | +- org.reflections:reflections:jar:0.9.10:compile
[INFO] | | +- org.javassist:javassist:jar:3.21.0-GA:compile
[INFO] | | \- com.google.code.findbugs:annotations:jar:2.0.1:compile
[INFO] | \- com.google.guava:guava:jar:20.0:compile
[INFO] +- io.swagger:swagger-models:jar:1.5.13:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-annotations:jar:2.8.0:compile
[INFO] +- io.swagger:swagger-core:jar:1.5.13:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.2.1:compile
[INFO] | +- com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:jar:2.8.10:compile
[INFO] | \- javax.validation:validation-api:jar:1.1.0.Final:compile
[INFO] +- io.swagger:swagger-annotations:jar:1.5.13:compile
[INFO] +- org.projectlombok:lombok:jar:1.16.16:provided
[INFO] +- org.springframework.data:spring-data-redis:jar:2.0.4.RELEASE:compile
[INFO] | +- org.springframework.data:spring-data-keyvalue:jar:1.2.10.RELEASE:compile
[INFO] | | +- org.springframework.data:spring-data-commons:jar:1.13.10.RELEASE:compile
[INFO] | | \- org.slf4j:jcl-over-slf4j:jar:1.7.25:compile
[INFO] | +- org.springframework:spring-tx:jar:4.3.14.RELEASE:compile
[INFO] | +- org.springframework:spring-oxm:jar:4.3.14.RELEASE:compile
[INFO] | +- org.springframework:spring-aop:jar:4.3.14.RELEASE:compile
[INFO] | \- org.springframework:spring-context-support:jar:4.3.14.RELEASE:compile
[INFO] \- redis.clients:jedis:jar:2.9.0:compile
[INFO] \- org.apache.commons:commons-pool2:jar:2.4.3:compile
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
Spring Boot 1.x and Spring Data 2.x are not compatible. Stay either entirely on the 1.x line, or, upgrade to Spring Boot 2.0 which is scheduled to be released today.
Spring data redis does come with a default redis client version. Check your mvn dependency tree and see if there are multiple redis version.If yes try excluding one.
i am trying to write to hdfs, i am sure i have same version hdfs clients in my pom.xml, some other dependencies are causing the issue. following are the details. i am using CDH 5.5.1 hadoop 2.6.0
if i just specify
conf.set("fs.defaultFS",
"localhost:8020");
it throws
Exception in thread "main" java.lang.IllegalArgumentException: Wrong FS: hdfs://localhost:8020/user/hdfs, expected: file:///
if i specify
conf.set("fs.default.name",
"localhost:8020");
it throws
org.apache.hadoop.ipc.RemoteException: Server IPC version 9 cannot communicate with client version 4
at org.apache.hadoop.ipc.Client.call(Client.java:1066)
at org.apache.hadoop.ipc.RPC$Invoker.invoke(RPC.java:225)
at com.sun.proxy.$Proxy3.getProtocolVersion(Unknown Source)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:396)
at org.apache.hadoop.ipc.RPC.getProxy(RPC.java:379)
at org.apache.hadoop.hdfs.DFSClient.createRPCNamenode(DFSClient.java:118)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:222)
at org.apache.hadoop.hdfs.DFSClient.<init>(DFSClient.java:187)
at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:89)
at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:1328)
at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:65)
at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:1346)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:244)
at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:122)
maven dependency tree
+- junit:junit:jar:4.12:compile
[INFO] | \- org.hamcrest:hamcrest-core:jar:1.3:compile
[INFO] +- com.googlecode.protobuf-java-format:protobuf-java-format:jar:1.4:compile
[INFO] +- org.apache.logging.log4j:log4j-core:jar:2.3:compile
[INFO] | \- org.apache.logging.log4j:log4j-api:jar:2.3:compile
[INFO] +- org.apache.avro:avro-tools:jar:1.7.7:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.6.4:compile
[INFO] +- org.apache.spark:spark-core_2.11:jar:1.5.0:compile
[INFO] | +- org.apache.avro:avro-mapred:jar:hadoop2:1.7.7:compile
[INFO] | | +- org.apache.avro:avro-ipc:jar:1.7.7:compile
[INFO] | | +- org.apache.avro:avro-ipc:jar:tests:1.7.7:compile
[INFO] | | +- org.codehaus.jackson:jackson-core-asl:jar:1.9.13:compile
[INFO] | | \- org.codehaus.jackson:jackson-mapper-asl:jar:1.9.13:compile
[INFO] | +- com.twitter:chill_2.11:jar:0.5.0:compile
[INFO] | | \- com.esotericsoftware.kryo:kryo:jar:2.21:compile
[INFO] | | +- com.esotericsoftware.reflectasm:reflectasm:jar:shaded:1.07:compile
[INFO] | | +- com.esotericsoftware.minlog:minlog:jar:1.2:compile
[INFO] | | \- org.objenesis:objenesis:jar:1.2:compile
[INFO] | +- com.twitter:chill-java:jar:0.5.0:compile
[INFO] | +- org.apache.spark:spark-launcher_2.11:jar:1.5.0:compile
[INFO] | +- org.apache.spark:spark-network-common_2.11:jar:1.5.0:compile
[INFO] | +- org.apache.spark:spark-network-shuffle_2.11:jar:1.5.0:compile
[INFO] | +- org.apache.spark:spark-unsafe_2.11:jar:1.5.0:compile
[INFO] | +- net.java.dev.jets3t:jets3t:jar:0.7.1:compile
[INFO] | | +- commons-codec:commons-codec:jar:1.3:compile
[INFO] | | \- commons-httpclient:commons-httpclient:jar:3.1:compile
[INFO] | +- org.apache.curator:curator-recipes:jar:2.4.0:compile
[INFO] | | +- org.apache.curator:curator-framework:jar:2.4.0:compile
[INFO] | | \- com.google.guava:guava:jar:14.0.1:compile
[INFO] | +- org.eclipse.jetty.orbit:javax.servlet:jar:3.0.0.v201112011016:compile
[INFO] | +- org.apache.commons:commons-lang3:jar:3.3.2:compile
[INFO] | +- org.apache.commons:commons-math3:jar:3.4.1:compile
[INFO] | +- com.google.code.findbugs:jsr305:jar:1.3.9:compile
[INFO] | +- org.slf4j:jul-to-slf4j:jar:1.7.10:compile
[INFO] | +- org.slf4j:jcl-over-slf4j:jar:1.7.10:compile
[INFO] | +- log4j:log4j:jar:1.2.17:compile
[INFO] | +- org.slf4j:slf4j-log4j12:jar:1.7.10:compile
[INFO] | +- com.ning:compress-lzf:jar:1.0.3:compile
[INFO] | +- org.xerial.snappy:snappy-java:jar:1.1.1.7:compile
[INFO] | +- net.jpountz.lz4:lz4:jar:1.3.0:compile
[INFO] | +- org.roaringbitmap:RoaringBitmap:jar:0.4.5:compile
[INFO] | +- com.typesafe.akka:akka-remote_2.11:jar:2.3.11:compile
[INFO] | | +- com.typesafe.akka:akka-actor_2.11:jar:2.3.11:compile
[INFO] | | | \- com.typesafe:config:jar:1.2.1:compile
[INFO] | | +- io.netty:netty:jar:3.8.0.Final:compile
[INFO] | | \- org.uncommons.maths:uncommons-maths:jar:1.2.2a:compile
[INFO] | +- com.typesafe.akka:akka-slf4j_2.11:jar:2.3.11:compile
[INFO] | +- org.scala-lang:scala-library:jar:2.11.7:compile
[INFO] | +- org.json4s:json4s-jackson_2.11:jar:3.2.10:compile
[INFO] | | \- org.json4s:json4s-core_2.11:jar:3.2.10:compile
[INFO] | | +- org.json4s:json4s-ast_2.11:jar:3.2.10:compile
[INFO] | | \- org.scala-lang:scalap:jar:2.11.0:compile
[INFO] | | \- org.scala-lang:scala-compiler:jar:2.11.0:compile
[INFO] | | \- org.scala-lang.modules:scala-xml_2.11:jar:1.0.1:compile
[INFO] | +- com.sun.jersey:jersey-server:jar:1.9:compile
[INFO] | | \- asm:asm:jar:3.1:compile
[INFO] | +- com.sun.jersey:jersey-core:jar:1.9:compile
[INFO] | +- org.apache.mesos:mesos:jar:shaded-protobuf:0.21.1:compile
[INFO] | +- io.netty:netty-all:jar:4.0.29.Final:compile
[INFO] | +- com.clearspring.analytics:stream:jar:2.7.0:compile
[INFO] | +- io.dropwizard.metrics:metrics-core:jar:3.1.2:compile
[INFO] | +- io.dropwizard.metrics:metrics-jvm:jar:3.1.2:compile
[INFO] | +- io.dropwizard.metrics:metrics-json:jar:3.1.2:compile
[INFO] | +- io.dropwizard.metrics:metrics-graphite:jar:3.1.2:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-databind:jar:2.4.4:compile
[INFO] | | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.4.0:compile
[INFO] | | \- com.fasterxml.jackson.core:jackson-core:jar:2.4.4:compile
[INFO] | +- com.fasterxml.jackson.module:jackson-module-scala_2.11:jar:2.4.4:compile
[INFO] | | +- org.scala-lang:scala-reflect:jar:2.11.2:compile
[INFO] | | \- com.thoughtworks.paranamer:paranamer:jar:2.6:compile
[INFO] | +- org.apache.ivy:ivy:jar:2.4.0:compile
[INFO] | +- oro:oro:jar:2.0.8:compile
[INFO] | +- org.tachyonproject:tachyon-client:jar:0.7.1:compile
[INFO] | | +- commons-lang:commons-lang:jar:2.4:compile
[INFO] | | +- org.apache.curator:curator-client:jar:2.1.0-incubating:compile
[INFO] | | +- org.tachyonproject:tachyon-underfs-hdfs:jar:0.7.1:compile
[INFO] | | \- org.tachyonproject:tachyon-underfs-local:jar:0.7.1:compile
[INFO] | +- net.razorvine:pyrolite:jar:4.4:compile
[INFO] | +- net.sf.py4j:py4j:jar:0.8.2.1:compile
[INFO] | \- org.spark-project.spark:unused:jar:1.0.0:compile
[INFO] +- org.apache.spark:spark-sql_2.11:jar:1.5.0:provided
[INFO] | +- org.apache.spark:spark-catalyst_2.11:jar:1.5.0:provided
[INFO] | | \- org.codehaus.janino:janino:jar:2.7.8:provided
[INFO] | | \- org.codehaus.janino:commons-compiler:jar:2.7.8:provided
[INFO] | +- org.apache.parquet:parquet-column:jar:1.7.0:provided
[INFO] | | +- org.apache.parquet:parquet-common:jar:1.7.0:provided
[INFO] | | \- org.apache.parquet:parquet-encoding:jar:1.7.0:provided
[INFO] | | \- org.apache.parquet:parquet-generator:jar:1.7.0:provided
[INFO] | \- org.apache.parquet:parquet-hadoop:jar:1.7.0:provided
[INFO] | +- org.apache.parquet:parquet-format:jar:2.3.0-incubating:provided
[INFO] | \- org.apache.parquet:parquet-jackson:jar:1.7.0:provided
[INFO] +- org.bouncycastle:bcprov-jdk15on:jar:1.52:compile
[INFO] +- com.google.protobuf:protobuf-java:jar:3.0.0-beta-2:compile
[INFO] +- com.databricks:spark-avro_2.11:jar:2.0.1:compile
[INFO] | \- org.apache.avro:avro:jar:1.7.6:compile
[INFO] | \- org.apache.commons:commons-compress:jar:1.4.1:compile
[INFO] | \- org.tukaani:xz:jar:1.0:compile
[INFO] +- org.apache.hadoop:hadoop-client:jar:2.6.0-cdh5.5.1:compile
[INFO] | +- org.apache.hadoop:hadoop-common:jar:2.6.0-cdh5.5.1:compile
[INFO] | | +- xmlenc:xmlenc:jar:0.52:compile
[INFO] | | +- commons-net:commons-net:jar:3.1:compile
[INFO] | | +- commons-collections:commons-collections:jar:3.2.2:compile
[INFO] | | +- commons-logging:commons-logging:jar:1.1.3:compile
[INFO] | | +- commons-configuration:commons-configuration:jar:1.6:compile
[INFO] | | | +- commons-digester:commons-digester:jar:1.8:compile
[INFO] | | | | \- commons-beanutils:commons-beanutils:jar:1.7.0:compile
[INFO] | | | \- commons-beanutils:commons-beanutils-core:jar:1.8.0:compile
[INFO] | | +- org.apache.hadoop:hadoop-auth:jar:2.6.0-cdh5.5.1:compile
[INFO] | | | +- org.apache.httpcomponents:httpclient:jar:4.2.5:compile
[INFO] | | | | \- org.apache.httpcomponents:httpcore:jar:4.2.4:compile
[INFO] | | | \- org.apache.directory.server:apacheds-kerberos-codec:jar:2.0.0-M15:compile
[INFO] | | | +- org.apache.directory.server:apacheds-i18n:jar:2.0.0-M15:compile
[INFO] | | | +- org.apache.directory.api:api-asn1-api:jar:1.0.0-M20:compile
[INFO] | | | \- org.apache.directory.api:api-util:jar:1.0.0-M20:compile
[INFO] | | \- org.apache.htrace:htrace-core4:jar:4.0.1-incubating:compile
[INFO] | +- org.apache.hadoop:hadoop-hdfs:jar:2.6.0-cdh5.5.1:compile
[INFO] | | +- org.mortbay.jetty:jetty-util:jar:6.1.26.cloudera.4:compile
[INFO] | | +- xerces:xercesImpl:jar:2.9.1:compile
[INFO] | | | \- xml-apis:xml-apis:jar:1.3.04:compile
[INFO] | | \- org.fusesource.leveldbjni:leveldbjni-all:jar:1.8:compile
[INFO] | +- org.apache.hadoop:hadoop-mapreduce-client-app:jar:2.6.0-cdh5.5.1:compile
[INFO] | | +- org.apache.hadoop:hadoop-mapreduce-client-common:jar:2.6.0-cdh5.5.1:compile
[INFO] | | | +- org.apache.hadoop:hadoop-yarn-client:jar:2.6.0-cdh5.5.1:compile
[INFO] | | | \- org.apache.hadoop:hadoop-yarn-server-common:jar:2.6.0-cdh5.5.1:compile
[INFO] | | \- org.apache.hadoop:hadoop-mapreduce-client-shuffle:jar:2.6.0-cdh5.5.1:compile
[INFO] | +- org.apache.hadoop:hadoop-yarn-api:jar:2.6.0-cdh5.5.1:compile
[INFO] | +- org.apache.hadoop:hadoop-mapreduce-client-core:jar:2.6.0-cdh5.5.1:compile
[INFO] | | \- org.apache.hadoop:hadoop-yarn-common:jar:2.6.0-cdh5.5.1:compile
[INFO] | | +- javax.servlet:servlet-api:jar:2.5:compile
[INFO] | | +- com.sun.jersey:jersey-client:jar:1.9:compile
[INFO] | | +- org.codehaus.jackson:jackson-jaxrs:jar:1.8.8:compile
[INFO] | | \- org.codehaus.jackson:jackson-xc:jar:1.8.8:compile
[INFO] | +- org.apache.hadoop:hadoop-mapreduce-client-jobclient:jar:2.6.0-cdh5.5.1:compile
[INFO] | +- org.apache.hadoop:hadoop-aws:jar:2.6.0-cdh5.5.1:compile
[INFO] | | \- com.amazonaws:aws-java-sdk:jar:1.7.4:compile
[INFO] | \- org.apache.hadoop:hadoop-annotations:jar:2.6.0-cdh5.5.1:compile
[INFO] +- org.apache.kafka:kafka_2.11:jar:0.9.0-kafka-2.0.0:compile
[INFO] | +- com.101tec:zkclient:jar:0.7:compile
[INFO] | +- com.yammer.metrics:metrics-core:jar:2.2.0:compile
[INFO] | +- net.sf.jopt-simple:jopt-simple:jar:4.9:compile
[INFO] | +- org.scala-lang.modules:scala-parser-combinators_2.11:jar:1.0.4:compile
[INFO] | \- org.apache.zookeeper:zookeeper:jar:3.4.6:compile
[INFO] | \- jline:jline:jar:0.9.94:compile
[INFO] +- org.apache.kafka:kafka-clients:jar:0.9.0-kafka-2.0.0:compile
[INFO] +- commons-io:commons-io:jar:2.4:compile
[INFO] +- javax.xml.bind:jaxb-api:jar:2.2.11:compile
[INFO] +- org.jsoup:jsoup:jar:1.8.3:compile
[INFO] +- jdk.tools:jdk.tools:jar:1.7:compile
[INFO] +- commons-cli:commons-cli:jar:1.3.1:compile
[INFO] \- com.google.code.gson:gson:jar:2.5:compile
how do i resolve this issue.
Yes because of old hadoop-core.jar inside some dependency hierarchy cause this issue. After spending some time and research I found something useful:
Please use following dependencies in your pom.xml.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>WordCount</groupId>
<artifactId>WordCount</artifactId>
<version>0.0.1-SNAPSHOT</version>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-common</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-yarn-common</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-common</artifactId>
<version>3.2.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-mapreduce-client-core</artifactId>
<version>3.2.0</version>
</dependency>
</dependencies>
<build>
<sourceDirectory>src</sourceDirectory>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
</project>
Sample java code which works well: AccessHDFS.java
package com.gpl.hadoop;
import java.io.InputStream;
import java.net.URI;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;
public class AccessHDFS {
public static void main(String args[]) {
String url = "hdfs://localhost:9000/user/hduser/input/test.txt";
FileSystem fs = null;
InputStream in = null;
try {
Configuration conf = new Configuration();
fs = FileSystem.get(URI.create(url), conf);
in = fs.open(new Path(url));
IOUtils.copyBytes(in, System.out, 4096, false);
} catch (Exception e) {
e.printStackTrace();
} finally {
IOUtils.closeStream(fs);
}
}
}
Alternatively you can add following repository with given dependency.
<repositories>
<repository> <id>mapr-releases</id>
<url>http://repository.mapr.com/maven/</url>
<snapshots><enabled>false</enabled></snapshots>
<releases><enabled>true</enabled></releases>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-core</artifactId>
<version>2.4.1-mapr-1408</version>
</dependency>
</dependencies>
Make sure you do select Force Update of Snapshots/Releases option to update maven project from:
Project --> Maven --> Update Project --> Select Force Update of Snapshots/Releases --> ok
Check that you have the correct dependency and version in your case: 2.6.0
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-client</artifactId>
<version>2.6.0</version>
</dependency>
<dependency>
<groupId>org.apache.hadoop</groupId>
<artifactId>hadoop-hdfs</artifactId>
<version>2.6.0</version>
</dependency>
This should resolve your error. You could also exclude, hadoop-core in the dependency. See this blog for more on the above solution.