Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 卡夫卡之春_Java_Spring_Spring Integration_Apache Kafka - Fatal编程技术网

Java 卡夫卡之春

Java 卡夫卡之春,java,spring,spring-integration,apache-kafka,Java,Spring,Spring Integration,Apache Kafka,我正在尝试从我的spring集成应用程序解析到kafka的消息。 我很确定我应该设置一个KafkaProducerMessageHandler作为我的端点,如下所示 @Bean @ServiceActivator(inputChannel = "correctChannel") public KafkaProducerMessageHandler<String, String> handler() throws Exception{ retur

我正在尝试从我的spring集成应用程序解析到kafka的消息。 我很确定我应该设置一个KafkaProducerMessageHandler作为我的端点,如下所示

    @Bean
    @ServiceActivator(inputChannel = "correctChannel")
    public KafkaProducerMessageHandler<String, String> handler() throws Exception{
        return new KafkaProducerMessageHandler<String, String>(kafkaContext());
    } 
@Bean
public KafkaProducerContext<String, String> kafkaContext () throws Exception{
    KafkaProducerContext<String, String> ctx = new KafkaProducerContext<String, String>();
    ctx.setProducerConfigurations(Collections.singletonMap("test", config()));
    return ctx;
}

@Bean
public ProducerConfiguration<String, String> config() throws Exception{
    return new ProducerConfiguration<String, String>(metaData(), producer().getObject());
}

@Bean
public Encoder<String> encoder(){
    return new StringEncoder<String>();
}

@Bean
public ProducerMetadata<String, String> metaData(){
    ProducerMetadata<String, String> meta = new ProducerMetadata<String,String>("test");
    meta.setValueClassType(String.class);
    meta.setKeyClassType(String.class);
    meta.setValueEncoder(encoder());
    meta.setKeyEncoder(encoder());
    return meta;
}

@Bean
public ProducerFactoryBean<String, String> producer(){
    return new ProducerFactoryBean<String,String>(metaData(), "localhost:9092");
}
@Bean
@ServiceActivator(inputChannel=“correctChannel”)
公共KafkaProducerMessageHandler()引发异常{
返回新的KafkaProducerMessageHandler(kafkaContext());
} 
然后我尝试为构造函数构建所有参数,如下所示

    @Bean
    @ServiceActivator(inputChannel = "correctChannel")
    public KafkaProducerMessageHandler<String, String> handler() throws Exception{
        return new KafkaProducerMessageHandler<String, String>(kafkaContext());
    } 
@Bean
public KafkaProducerContext<String, String> kafkaContext () throws Exception{
    KafkaProducerContext<String, String> ctx = new KafkaProducerContext<String, String>();
    ctx.setProducerConfigurations(Collections.singletonMap("test", config()));
    return ctx;
}

@Bean
public ProducerConfiguration<String, String> config() throws Exception{
    return new ProducerConfiguration<String, String>(metaData(), producer().getObject());
}

@Bean
public Encoder<String> encoder(){
    return new StringEncoder<String>();
}

@Bean
public ProducerMetadata<String, String> metaData(){
    ProducerMetadata<String, String> meta = new ProducerMetadata<String,String>("test");
    meta.setValueClassType(String.class);
    meta.setKeyClassType(String.class);
    meta.setValueEncoder(encoder());
    meta.setKeyEncoder(encoder());
    return meta;
}

@Bean
public ProducerFactoryBean<String, String> producer(){
    return new ProducerFactoryBean<String,String>(metaData(), "localhost:9092");
}
@Bean
公共KafkaProducerContext kafkaContext()引发异常{
KafkaProducerContext ctx=新的KafkaProducerContext();
setproducerConfiguration(Collections.singletonMap(“test”,config());
返回ctx;
}
@豆子
public ProducerConfiguration config()引发异常{
返回新的ProducerConfiguration(metaData(),producer().getObject());
}
@豆子
公共编码器(){
返回新的StringEncoder();
}
@豆子
公共产品元数据(){
ProducerMetadata=新的ProducerMetadata(“测试”);
setValueClassType(String.class);
setKeyClassType(String.class);
setValueEncoder(encoder());
setKeyEncoder(encoder());
返回元;
}
@豆子
公共生产者FactoryBean生产者(){
返回新的ProducerFactoryBean(元数据(),“localhost:9092”);
}
但是ProducerConfiguration部分引发了以下异常:

Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'config' defined in class path resource [demo/IntegrationConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.integration.kafka.support.ProducerConfiguration]: Factory method 'config' threw exception; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:599)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1111)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1006)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:755)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
    at demo.IntegrationnnnApplication.main(IntegrationnnnApplication.java:12)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.integration.kafka.support.ProducerConfiguration]: Factory method 'config' threw exception; nested exception is java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:588)
    ... 16 more
Caused by: java.lang.IllegalArgumentException: Superclass has no null constructors but no arguments were given
    at org.springframework.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:721)
    at org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)
    at org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
    at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
    at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
    at org.springframework.cglib.proxy.Enhancer.create(Enhancer.java:285)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.enhanceFactoryBean(ConfigurationClassEnhancer.java:384)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:292)
    at demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892.producer(<generated>)
    at demo.IntegrationConfiguration.config(IntegrationConfiguration.java:178)
    at demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892.CGLIB$config$0(<generated>)
    at demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892$$FastClassBySpringCGLIB$$59e71af6.invoke(<generated>)
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
    at demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892.config(<generated>)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:483)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 17 more
线程“main”org.springframework.beans.factory.BeanCreationException中的异常:创建类路径资源[demo/IntegrationConfiguration.class]中定义的名为“config”的bean时出错:通过工厂方法实例化bean失败;嵌套异常为org.springframework.beans.beanstantiationException:未能实例化[org.springframework.integration.kafka.support.ProducerConfiguration]:工厂方法“config”引发异常;嵌套的异常是java.lang.IllegalArgumentException:超类没有空构造函数,但没有给出任何参数
位于org.springframework.beans.factory.support.ConstructorResolver.InstanceUsingFactoryMethod(ConstructorResolver.java:599)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.InstanceUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1111)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1006)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
位于org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
位于org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:303)
位于org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
位于org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:299)
位于org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194)
位于org.springframework.beans.factory.support.DefaultListableBeanFactory.PreInstanceSingleton(DefaultListableBeanFactory.java:755)
位于org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
位于org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
位于org.springframework.boot.SpringApplication.refresh(SpringApplication.java:686)
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:320)
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:957)
位于org.springframework.boot.SpringApplication.run(SpringApplication.java:946)
位于demo.IntegrationnnnApplication.main(IntegrationnnnApplication.java:12)
原因:org.springframework.beans.beans实例化异常:未能实例化[org.springframework.integration.kafka.support.ProducerConfiguration]:工厂方法“config”引发异常;嵌套的异常是java.lang.IllegalArgumentException:超类没有空构造函数,但没有给出任何参数
位于org.springframework.beans.factory.support.SimpleInstallationStrategy.instantiate(SimpleInstallationStrategy.java:189)
位于org.springframework.beans.factory.support.ConstructorResolver.InstanceUsingFactoryMethod(ConstructorResolver.java:588)
... 还有16个
原因:java.lang.IllegalArgumentException:超类没有空构造函数,但未提供任何参数
位于org.springframework.cglib.proxy.Enhancer.emitConstructors(Enhancer.java:721)
位于org.springframework.cglib.proxy.Enhancer.generateClass(Enhancer.java:499)
位于org.springframework.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:25)
位于org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
位于org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:377)
位于org.springframework.cglib.proxy.Enhancer.create(Enhancer.java:285)
位于org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.enhanceFactoryBean(ConfigurationClassEnhancer.java:384)
位于org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:292)
在demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892.producer()处
在demo.IntegrationConfiguration.config(IntegrationConfiguration.java:178)中
在demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892.CGLIB$config$0()处
在demo.IntegrationConfiguration$$EnhancerBySpringCGLIB$$8445d892$$FastClassBySpringCGLIB$$59e71af6.invoke()处
位于org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
位于org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor。