2017-05-05 91 views
-3

我正在tryning把音频文件使用JSON在卡夫卡, 她是代码 producer Code把音频文件卡夫卡与春季云流

在消费我试图让我的文件中像这样Consumer code 错误:

org.springframework.messaging.MessagingException:异常而调用com.sofrecom.service.VoiceCampaignCreator#过程抛出[1参数];嵌套的异常是显示java.lang.NullPointerException 在org.springframework.cloud.stream.binding.StreamListenerMessageHandler.handleRequestMessage(StreamListenerMessageHandler.java:56) 在org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109) 在org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) 在org.springframework.cloud.stream.binding.DispatchingStreamListenerMessageHandler $ ConditionalStreamListenerHandler.handleMessage(DispatchingStreamListenerMessageHandler.java:122) 在org.springframework。 cloud.stream.binding.DispatchingStreamListenerMessageHandler.handleRequestMessage(DispatchingStreamListenerMessageHandler.java:75) at org.springframework .integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:109) 在org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) 在org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch(AbstractDispatcher的.java:116) 在org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch(UnicastingDispatcher.java:148) 在org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch(UnicastingDispatcher.java:121) 在org.springframework .integration.channel.AbstractSubscribableChannel.doSend(AbstractSubscribableChannel.java:89) 在org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:423) 在org.springframework.integration.channel.AbstractMessageChannel.send(AbstractMessageChannel.java:373) 在org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:115) 在org.springframework.messaging.core。 GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45) 在org.springframework.messaging.core.AbstractMessageSendingTemplate.send(AbstractMessageSendingTemplate.java:105) 在org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput(AbstractMessageProducingHandler.java:292) at org.springframework.integration.handler.AbstractMessageProducingHandler.produceOutput(AbstractMessageProducingHandler.java:212) at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs(Abstrac tMessageProducingHandler.java:129) 在org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:115) 在org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:127) 在有机springframework.integration.channel.FixedSubscriberChannel.send(FixedSubscriberChannel.java:70) 在org.springframework.integration.channel.FixedSubscriberChannel.send(FixedSubscriberChannel.java:64) 在org.springframework.messaging.core.GenericMessagingTemplate.doSend( GenericMessagingTemplate.java:115) 在org.springframework.messaging.core.GenericMessagingTemplate.doSend(GenericMessagingTemplate.java:45) 在org.springframework.messaging.core.AbstractMessageSend ingTemplate.send(AbstractMessageSendingTemplate.java:105) at org.springframework.integration.endpoint。MessageProducerSupport.sendMessage(MessageProducerSupport.java:171) 在org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.access $ 000(KafkaMessageDrivenChannelAdapter.java:54) 在org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter $ IntegrationRecordMessageListener.onMessage (KafkaMessageDrivenChannelAdapter.java:288) 在org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter $ IntegrationRecordMessageListener.onMessage(KafkaMessageDrivenChannelAdapter.java:279) 在org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter $ 1.doWithRetry(RetryingAcknowledgingMessageListenerAdapter。 java:77) at org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter $ 1.doWithRetry(RetryingAcknowledgingMessageListene (RetryTemplate.java:179) at org.springframework.retry.support.RetryTemplate.doExecute(RetryTemplate.java:286) 。 springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter.onMessage(RetryingAcknowledgingMessageListenerAdapter.java:72) 在org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter.onMessage(RetryingAcknowledgingMessageListenerAdapter.java:39) 在org.springframework.kafka.listener。 KafkaMessageListenerContainer $ ListenerConsumer.invokeRecordListener(KafkaMessageListenerContainer.java:771) at org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer.invokeListener(KafkaMessageListenerContainer.java:715) 在org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer.access $ 2600(KafkaMessageListenerContainer.java:231) 在org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer $ ListenerInvoker.run(KafkaMessageListenerContainer.java:1004) 是java .util.concurrent.Executors $ RunnableAdapter.call(Executors.java:511) 在java.util.concurrent.FutureTask.run(FutureTask.java:266) 在java.lang.Thread.run(Thread.java:745 ) 引起:java.lang.NullPointerException:null at org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.getSize(DiskFileItem.java:267) at org.apache.catalina.core.ApplicationPart。 getSize(ApplicationPart.java:110) at org.springframework.web.multipart.support.Standar dMultipartHttpServletRequest $ StandardMultipartFile.getSize(StandardMultipartHttpServletRequest.java:287) 在com.sofrecom.service.VoiceCampaignCreator.process(VoiceCampaignCreator.java:44) 在sun.reflect.NativeMethodAccessorImpl.invoke0(本机方法) 在sun.reflect.NativeMethodAccessorImpl .invoke(NativeMethodAccessorImpl.java:62) 在sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在java.lang.reflect.Method.invoke(Method.java:498) 在org.springframework.messaging .handler.invocation.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:180) at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke(InvocableHandlerMethod.java:112) at org.springframework.cloud.st ream.binding.StreamListenerMessageHandler.handleRequestMessage(StreamListenerMessageHandler.java:48) ... 42个共同框架省略

任何帮助,请!

回答

2

这个问题似乎很明显...

造成的:显示java.lang.NullPointerException:空在org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.getSize(DiskFileItem.java :267),位于org.springframework.web.multipart.support的org.apache.catalina.core.ApplicationPart.getSize(ApplicationPart.java:110)。StandardMultipartHttpServletRequest $ StandardMultipartFile.getSize(StandardMultipartHttpServletRequest.java:287)在com.sofrecom.service.VoiceCampaignCreator.process(VoiceCampaignCreator.java:44)

它看起来像你试图解码网络外部的Web请求环境。在将数据发送到Kafka之前,您需要解码多部分。

编辑

DiskFileItem ...

private transient DeferredFileOutputStream dfos; 

... dfos是短暂的 - 所以它不会得到序列化(很明显 - 因为它是一个流)。