2016-09-22 14 views
0

mule 3.7のdataweaveでメッセージを変換する際に問題が発生しています。 input XMLdataweave coersion string to arrayエラー

dataweaveコード: DAtaweave code

エラー以下のように: 例外スタックは:に文字列: 1.は強制できません配列(com.mulesoft.weave 入力XMLは、以下のような構造を有しています.model.values.coercion.exception.UnsupportedTypeCoercionException) com.mulesoft.weave.model.values.formatting.ArrayFormatTypeCoercionValue:31(ヌル) 2.例外実行中: header_key:payload.data.header.Key、 ^ カン配列(com.mulesoft.weave.mule.exception.WeaveExecutionException) com.mulesoft.weave.mule.WeaveMessageProcessor $ WeaveOutputHandler:162(ヌル)


ルート例外のスタックトレースに文字列:強制OT : com.mulesoft.weave.model.values.coercion.exception.UnsupportedTypeCoercionException:a:stringをa:配列に強制変換できません。 at com.mulesoft.weave.model.values.formatting.ArrayFormatTypeCoercionValue.evaluate(ArrayFormatTypeCoercionValue.scala:31 ) at com.mulesoft.weave.model.values.formatting.ArrayFormatTypeCoercionValue.evaluate(ArrayFormatTypeCoercionValue.scala:13) at com.mulesoft.weave.reader.csv.CSVWriter.writeCSV(CSVWrite (CSVWriter.scala:44) at com.mulesoft.weave.model.values.Value $ class.write(Value.scala:70) でcom.mulesoft.weave.reader.csv.CSVWriter.writeValue 31) at com.mulesoft.weave.engine.ast.structure.ObjectNode.write(ObjectNode.scala:11) at com.mulesoft.weave.engine.Engine.internalExecute(Engine.scala:89) at com。 mulesoft.weave.engine.Engine.execute(Engine.scala:54) com.mulesoft.weave.engine.Engine.execute(Engine.scala:169) at com.mulesoft.weave.mule.WeaveMessageProcessor $ WeaveOutputHandler。 write(WeaveMessageProcessor.scala:159) at org.mule.transformer.simple.ObjectToByteArray.doTransform(ObjectToByteArray.java:63) at org.mule.transformer.AbstractTransformer.transform(AbstractTransformer.java:4) 15)org.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:373)org.mule.DefaultMuleMessage.getPayloadAsBytesで でorg.mule.DefaultMuleMessage.getPayload(DefaultMuleMessage.java:425) で(DefaultMuleMessage.java:714) org.mule.module.http.internal.listener.HttpMessageProcessorTemplate.sendResponseToClientでorg.mule.module.http.internal.listener.HttpResponseBuilder.build(HttpResponseBuilder.java:177) で(HttpMessageProcessorTemplate.java:97) でorg.mule.execution.PhaseExecutionEngine $ InternalPhaseExecutionEngineでorg.mule.execution.AsyncResponseFlowProcessingPhase.runPhase(AsyncResponseFlowProcessingPhase.java:83)org.mule.execution.AsyncResponseFlowProcessingPhase.runPhase(AsyncResponseFlowProcessingPhase.java:38)で 。 phaseSuccessfully com.mulesoft.mule.throttling.ThrottlingPhase.runPhase(ThrottlingPhase.java:185)でorg.mule.execution.PhaseExecutionEngine $ InternalPhaseExecutionEngine.phaseSuccessfully(PhaseExecutionEngine.java:69) で(PhaseExecutionEngine.java:65) で(PhaseExecutionEngine.java:114) at org.mule.execution.PhaseExecutionEngine.process(ja: PhaseExecutionEngine.java:41) at org.mule.execution.MuleMessageProcessingManager。processMessage(MuleMessageProcessingManager.java:32) at org.mule.module.http.internal.listener.DefaultHttpListener $ 1.handleRequest(DefaultHttpListener.java:126) at org.mule.module.http.internal.listener.grizzly.GrizzlyRequestDispatcherFilter org.glassfish.grizzly.filterchain.ExecutorResolver $ 9.executeで.handleRead(GrizzlyRequestDispatcherFilter.java:83) org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilterで(ExecutorResolver.java:119) (DefaultFilterChain.java:283) org.glassfish.grizzly.filterchain.DefaultFilterChain.executeでorg.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:200) (DefaultFilterChain.java:132)org.glassfish.grizzly.filterchainで で。 DefaultFilterChain.process(DefaultFilterChain.java:111) ) at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77) at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:536) at org.glassfish.grizzly.strategies .FromIOEvent(AbstractIOStrategy.java:112) 、org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy.run0(ExecutorPerServerAddressIOStrategy.java:102) 、org.mule.module.http.internal.listener .grizzly.ExecutorPerServerAddressIOStrategy.access $ 100(ExecutorPerServerAddressIOStrategy.java:30)org.mule.module.http.internal.listener.grizzly.ExecutorPerServerAddressIOStrategy $ WorkerThreadRunnable.run(ExecutorPerServerAddressIOStrategy.java:125)java.util.concurrentので で 。 ThreadPoolExecutor.runWorker(ThreadPoolExecuto r.java:1145)java.lang.Thread.runでjava.util.concurrent.ThreadPoolExecutor $ Worker.run(ThreadPoolExecutor.java:615) (Thread.java:745)で

誰もが任意のアイデアを持っていますコードにはどのような問題がありますか? ありがとう!

答えて

0

唯一のことは、mapオペレータが配列を期待し、payload.data.POが存在しないことです。私はあなたがNPEを取得していないことを知っていますが、それがあなたのエラーであるかどうかを確認できますか?

+0

チャドに感謝します。実際にはマップのターゲットを配列として強制するために*を追加する必要があります。 – Robert