我尝试使用以下命令在本地部署用2.2.0编写的strom拓扑: ./storm local ./sample.jar com.sample.processor.storm.Main config.yml
但不幸的是,我遇到了这个问题:
java.lang.NoClassDefFoundError:
Could not initialize class
com.fasterxml.jackson.databind.deser.std.JdkDeserializers
我在gradle文件中包含了这个,在gradle文件下面提供:
buildscript {
repositories {
mavenCentral()
jcenter()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath "org.sonarsource.scanner.gradle:sonarqube-gradle-plugin:2.0.1"
}
}
repositories {
maven { url "http://clojars.org/repo"}
maven { url "https://repository.cloudera.com/artifactory/cloudera-repos/" }
jcenter { url "http://jcenter.bintray.com/" }
}
configurations {
includeInJar
}
dependencies {
includeInJar 'org.codehaus.jackson:jackson-core-asl:1.9.13'
includeInJar 'org.codehaus.jackson:jackson-mapper-asl:1.9.12'
includeInJar 'com.fasterxml.jackson.core:jackson-databind:2.9.8'
compile ('org.apache.storm:storm-core:2.2.0') {
exclude group: 'org.slf4j'
exclude group: 'com.fasterxml.jackson.core'
}
compile 'org.codehaus.jackson:jackson-core-asl:1.9.13'
compile 'org.codehaus.jackson:jackson-mapper-asl:1.9.12'
compile group: 'com.fasterxml.jackson.core', name: 'jackson-databind', version: '2.9.8'
}
编译成功后,我可以在ide运行时进行测试,但只有在本地部署时,才会出现上述错误
谢谢你的帮助。提前谢谢!
相同的gradle文件适用于storm0.10.0,但不适用于2.2.0
1条答案
按热度按时间v8wbuo2f1#
我从gradle build中删除了fasterxml依赖项,因为这与jackson库冲突,而且它可以很好地构建jar可执行文件。