2017-05-05 7 views
-3

, 그녀는 내가 이런 내 파일을 얻기 위해 노력하고있어 소비자의 코드 producer Code스프링 클라우드 스트림과 카프카의 오디오 파일을 넣어 내가 카프카에서 JSON과 오디오 파일을 넣어 tryning있어

입니다 Consumer code 오류 :

org.springframework.messaging.MessagingException : com.sofrecom.service.VoiceCampaignCreator # 1 프로세스를 호출하는 동안 발생한 예외 [1 인수]; 중첩 예외 org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal에서 org.springframework.cloud.stream.binding.StreamListenerMessageHandler.handleRequestMessage (StreamListenerMessageHandler.java:56) 에서 java.lang.NullPointerException이 이다 (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 org.springframework.integration.dispatcher.AbstractDispatcher.tryOptimizedDispatch에서 org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) 에서 .integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:109) (AbstractDispatcher 된 .java : org.springframework.integration.dispatcher.UnicastingDispatcher.dispatch (UnicastingDispatcher.java:121) 에서 org.springframework.integration.dispatcher.UnicastingDispatcher.doDispatch (UnicastingDispatcher.java:148) 116)에서 org.springframework .integration.channel.AbstractSubscribableChannel.doSend (AbstractSubscribableChannel.java:89) at org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:423)org.springframework.messaging.core.GenericMessagingTemplate.doSend에서 org.springframework.integration.channel.AbstractMessageChannel.send (AbstractMessageChannel.java:373) (GenericMessagingTemplate.java:115) org.springframework.messaging.core에서 에서. org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutput에서 org.springframework.messaging.core.AbstractMessageSendingTemplate.send (AbstractMessageSendingTemplate.java:105) 에서 GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) (AbstractMessageProducingHandler.java:292) (AbstractMessageProducingHandler.java:212) at org.springframework.integration.handler.AbstractMessageProducingHandler.sendOutputs tMessageProducingHandler.java:129) 조직에서 org.springframework.integration.handler.AbstractMessageHandler.handleMessage (AbstractMessageHandler.java:127) 에서 org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal (AbstractReplyProducingMessageHandler.java:115) 에서 . (고정 된 서브 시스템 채널. GenericMessagingTemplate.java:115) at org.springframework.messaging.core.GenericMessagingTemplate.doSend (GenericMessagingTemplate.java:45) at org.springframework.messaging.core.AbstractMessageSend ingTemplate.send (AbstractMessageSendingTemplate.java:105) at org.springframework.integration.endpoint.org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter $ IntegrationRecordMessageListener.onMessage에서 org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter.access $ 000 (KafkaMessageDrivenChannelAdapter.java:54) 에서 MessageProducerSupport.sendMessage (MessageProducerSupport.java:171) org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter $ 1.doWithRetry에서 org.springframework.integration.kafka.inbound.KafkaMessageDrivenChannelAdapter $ IntegrationRecordMessageListener.onMessage (KafkaMessageDrivenChannelAdapter.java:279) 에서 (KafkaMessageDrivenChannelAdapter.java:288) (RetryingAcknowledgingMessageListenerAdapter. java : 77) at org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter $ 1.doWithRetry (RetryingAcknowledgingMessageListene rAdapter.java:72) at org.springframework.retry.support.RetryTemplate.doExecute (RetryTemplate.java:286) at org.springframework.retry.support.RetryTemplate.execute (RetryTemplate.java:179) at org. springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter.onMessage (RetryingAcknowledgingMessageListenerAdapter.java:72) org.springframework.kafka.listener.adapter.RetryingAcknowledgingMessageListenerAdapter.onMessage (RetryingAcknowledgingMessageListenerAdapter.java:39)에서 org.springframework.kafka.listener에서 . org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer.invokeListener에서 KafkaMessageListenerContainer $ ListenerConsumer.invokeRecordListener (KafkaMessageListenerContainer.java:771) (KafkaMessageListenerContainer.java:715),369 자바에서 org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer $ ListenerInvoker.run (KafkaMessageListenerContainer.java:1004) 에서 org.springframework.kafka.listener.KafkaMessageListenerContainer $ ListenerConsumer.access $ 2600 (KafkaMessageListenerContainer.java:231) 에서 1,363,210 .util.concurrent.Executors $ RunnableAdapter.call (Executors.java:511) at java.util.concurrent.FutureTask.run (FutureTask.java:266) at 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 sun.reflect.NativeMethodAccessorImpl에서 sun.reflect.NativeMethodAccessorImpl.invoke0 (기본 방법) 에서 com.sofrecom.service.VoiceCampaignCreator.process (VoiceCampaignCreator.java:44) 에서 dMultipartHttpServletRequest $ StandardMultipartFile.getSize (StandardMultipartHttpServletRequest.java:287) org.springframework.messaging에서 java.lang.reflect.Method.invoke (Method.java:498) 에서 sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43) 에서 .invoke (NativeMethodAccessorImpl.java:62) .handler.invocation.InvocableHandlerMethod.doInvoke (InvocableHandlerMethod.java:180) at org.springframework.messaging.handler.invocation.InvocableHandlerMethod.invoke (InvocableHandlerMethod.java:112) at org.springframework.cloud.st

도움 바랍니다 생략 (42) 공통 프레임 ream.binding.StreamListenerMessageHandler.handleRequestMessage (StreamListenerMessageHandler.java:48) ...! java.lang.NullPointerException이 : 널 (null) org.apache.tomcat.util.http.fileupload.disk.DiskFileItem.getSize (DiskFileItem.java에서

답변

2

문제는

에 의해 발생 ... 꽤 분명한 것 같다 : 267) at org.apache.catalina.core.ApplicationPart.getSize (ApplicationPart.java:110) at org.springframework.web.multipart.support.당신이 웹의 외부 웹 요청을 해독하려고하는 것처럼 com.sofrecom.service.VoiceCampaignCreator.process에서 StandardMultipartHttpServletRequest $ StandardMultipartFile.getSize (StandardMultipartHttpServletRequest.java:287) (VoiceCampaignCreator.java:44는)

같습니다 환경. 카프카에게 데이터를 보내기 전에 멀티 파트를 디코딩해야합니다.

편집 DiskFileItem에서

...

private transient DeferredFileOutputStream dfos; 

... dfos은 과도하다 - 그래서 (분명히 - 그것은 스트림 때문에) 직렬화받지 않습니다.