Spring 引导:Spring Cloud Stream Kafka 实现
Spring Boot: Spring Cloud Stream Kafka implementation
这似乎是非常简单的实现,只有 2 个特定于云流项目的库,但我得到了
java.lang.ClassNotFoundException: org.springframework.integration.support.converter.ConfigurableCompositeMessageConverter
项目中的所有依赖为:
compile(
"org.springframework.boot:spring-boot-starter-web",
"org.springframework.boot:spring-boot-starter-actuator",
"org.springframework.boot:spring-boot-starter-data-rest",
"org.springframework.boot:spring-boot-starter-data-jpa",
"org.springframework.boot:spring-boot-starter-security",
"org.springframework.boot:spring-boot-starter-amqp",
"org.springframework.cloud:spring-cloud-stream",
"org.springframework.cloud:spring-cloud-starter-stream-kafka",
"org.postgresql:postgresql:9.4.1212.jre7",
"org.projectlombok:lombok:1.16.14",
"io.jsonwebtoken:jjwt:0.7.0",
"org.flywaydb:flyway-core:4.2.0"
)
云流配置:
spring.application.name=services
spring.stream.bindings.output.destination=appTopic
spring.stream.bindings.output.content-type=application/json
spring.stream.bindings.kafka.binder.zkNodes=${HOST}
spring.stream.bindings.kafka.binder.brokers=${HOST}
完成build.gradle:
buildscript {
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
classpath "gradle.plugin.com.boxfuse.client:flyway-release:4.2.0"
classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.flywaydb.flyway'
apply plugin: "io.spring.dependency-management"
ext {
springBootVersion = '1.5.2.RELEASE'
}
jar {
baseName = 'rest'
version = '0.1'
}
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-stream-dependencies:Elmhurst.BUILD-SNAPSHOT'
}
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile(
"org.springframework.boot:spring-boot-starter-web",
"org.springframework.boot:spring-boot-starter-actuator",
"org.springframework.boot:spring-boot-starter-data-rest",
"org.springframework.boot:spring-boot-starter-data-jpa",
"org.springframework.boot:spring-boot-starter-security",
"org.springframework.boot:spring-boot-starter-amqp",
"org.springframework.cloud:spring-cloud-stream",
"org.springframework.cloud:spring-cloud-starter-stream-kafka",
"org.springframework.integration:spring-integration-core",
"org.postgresql:postgresql:9.4.1212.jre7",
"org.projectlombok:lombok:1.16.14",
"io.jsonwebtoken:jjwt:0.7.0",
"org.flywaydb:flyway-core:4.2.0"
)
testCompile(
"org.springframework.boot:spring-boot-starter-test",
"com.jayway.jsonpath:json-path",
"org.flywaydb.flyway-test-extensions:flyway-spring-test:4.2.0",
"io.rest-assured:rest-assured:3.0.3"
)
}
repositories {
maven {
url 'https://repo.spring.io/libs-snapshot'
}
}
org.springframework.integration.support.converter.ConfigurableCompositeMessageConverter
来自 Spring 整合 5.0
:
/**
* A {@link CompositeMessageConverter} extension with some default {@link MessageConverter}s
* which can be overridden with the given converters
* or added in the end of target {@code converters} collection.
* <p>
* The default converts are (declared exactly in this order):
* <ul>
* <li> {@link MappingJackson2MessageConverter} if Jackson processor is present in classpath;
* <li> {@link ByteArrayMessageConverter}
* <li> {@link ObjectStringMessageConverter}
* <li> {@link GenericMessageConverter}
* </ul>
*
* @author Artem Bilan
*
* @since 5.0
*/
public class ConfigurableCompositeMessageConverter extends CompositeMessageConverter {
您应该确保在您的应用程序中使用兼容的版本。
您的版本似乎不匹配 ConfigurableCompositeMessageConverter
是 Spring Integration 5.0 中的新 class。
您使用的是什么启动版本?什么 spring-cloud-stream 版本?
Spring Cloud Stream 当前与 Spring Boot 2.0 快照不兼容(如果您使用的是它)。
这似乎是非常简单的实现,只有 2 个特定于云流项目的库,但我得到了
java.lang.ClassNotFoundException: org.springframework.integration.support.converter.ConfigurableCompositeMessageConverter
项目中的所有依赖为:
compile(
"org.springframework.boot:spring-boot-starter-web",
"org.springframework.boot:spring-boot-starter-actuator",
"org.springframework.boot:spring-boot-starter-data-rest",
"org.springframework.boot:spring-boot-starter-data-jpa",
"org.springframework.boot:spring-boot-starter-security",
"org.springframework.boot:spring-boot-starter-amqp",
"org.springframework.cloud:spring-cloud-stream",
"org.springframework.cloud:spring-cloud-starter-stream-kafka",
"org.postgresql:postgresql:9.4.1212.jre7",
"org.projectlombok:lombok:1.16.14",
"io.jsonwebtoken:jjwt:0.7.0",
"org.flywaydb:flyway-core:4.2.0"
)
云流配置:
spring.application.name=services
spring.stream.bindings.output.destination=appTopic
spring.stream.bindings.output.content-type=application/json
spring.stream.bindings.kafka.binder.zkNodes=${HOST}
spring.stream.bindings.kafka.binder.brokers=${HOST}
完成build.gradle:
buildscript {
repositories {
mavenCentral()
maven {
url "https://plugins.gradle.org/m2/"
}
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.2.RELEASE")
classpath "gradle.plugin.com.boxfuse.client:flyway-release:4.2.0"
classpath "io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE"
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'org.flywaydb.flyway'
apply plugin: "io.spring.dependency-management"
ext {
springBootVersion = '1.5.2.RELEASE'
}
jar {
baseName = 'rest'
version = '0.1'
}
repositories {
mavenCentral()
}
dependencyManagement {
imports {
mavenBom 'org.springframework.cloud:spring-cloud-stream-dependencies:Elmhurst.BUILD-SNAPSHOT'
}
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
dependencies {
compile(
"org.springframework.boot:spring-boot-starter-web",
"org.springframework.boot:spring-boot-starter-actuator",
"org.springframework.boot:spring-boot-starter-data-rest",
"org.springframework.boot:spring-boot-starter-data-jpa",
"org.springframework.boot:spring-boot-starter-security",
"org.springframework.boot:spring-boot-starter-amqp",
"org.springframework.cloud:spring-cloud-stream",
"org.springframework.cloud:spring-cloud-starter-stream-kafka",
"org.springframework.integration:spring-integration-core",
"org.postgresql:postgresql:9.4.1212.jre7",
"org.projectlombok:lombok:1.16.14",
"io.jsonwebtoken:jjwt:0.7.0",
"org.flywaydb:flyway-core:4.2.0"
)
testCompile(
"org.springframework.boot:spring-boot-starter-test",
"com.jayway.jsonpath:json-path",
"org.flywaydb.flyway-test-extensions:flyway-spring-test:4.2.0",
"io.rest-assured:rest-assured:3.0.3"
)
}
repositories {
maven {
url 'https://repo.spring.io/libs-snapshot'
}
}
org.springframework.integration.support.converter.ConfigurableCompositeMessageConverter
来自 Spring 整合 5.0
:
/**
* A {@link CompositeMessageConverter} extension with some default {@link MessageConverter}s
* which can be overridden with the given converters
* or added in the end of target {@code converters} collection.
* <p>
* The default converts are (declared exactly in this order):
* <ul>
* <li> {@link MappingJackson2MessageConverter} if Jackson processor is present in classpath;
* <li> {@link ByteArrayMessageConverter}
* <li> {@link ObjectStringMessageConverter}
* <li> {@link GenericMessageConverter}
* </ul>
*
* @author Artem Bilan
*
* @since 5.0
*/
public class ConfigurableCompositeMessageConverter extends CompositeMessageConverter {
您应该确保在您的应用程序中使用兼容的版本。
您的版本似乎不匹配 ConfigurableCompositeMessageConverter
是 Spring Integration 5.0 中的新 class。
您使用的是什么启动版本?什么 spring-cloud-stream 版本?
Spring Cloud Stream 当前与 Spring Boot 2.0 快照不兼容(如果您使用的是它)。