2017-05-05 63 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是短暫的 - 所以它不會得到序列化(很明顯 - 因爲它是一個流)。