2017-02-02 13 views
0

以下は、スプリング統合フローの抽出です。いくつかのマシンで、フローテストケースは合格していますが、一部のシステムではエラーが発生しています:メソッドtoGregorianCalendar()がjava.util.Dateの型に見つかりません

春の統合フロー:

<integration:chain input-channel="X" output-channel="Y"> 
    <integration:transformer expression="'{1:F21XXXX}{4:{1XX:' + new java.text.SimpleDateFormat('yyMMddHHmm').format(payload.arrivalDateTime.toGregorianCalendar().getTime()) + '}{444:' + payload.statusDetail.etc + '}}'"/> 
</integration:chain> 

エラー:

ERROR 02/2月/ 2017年09:35:08608 [org.springframework.jms.listener.DefaultMessageListenerContainer#48-1] springframework.integration .handler.LoggingHandler - またはg.springframework.expression.spel.SpelEvaluationException:EL1004E:(pos 88):メソッド呼び出し:toGregorianCalendar()メソッドがjava.util.Date型で見つかりません at org.springframework.expression.spel.ast.MethodReference.findAccessorForMethod org.springframework.expression.spel.ast.MethodReference.getValueInternalでMethodReference.java:185) (MethodReference.java:107)は

我々が欠落しているかわからないが、我々は確認したJava(1.6.0_35)/ maven(3.0.3)とすべてのマシンで同じです。どんな援助も推奨されるだろう。ありがとう。

答えて

0

toGregorianCalendar()メソッドは、クラスXMLGregorianCalendarの内部にあります。例外から、SpringのelがDateオブジェクトのGregorianCalendar()を呼び出そうとしていることは明らかです。あなたの問題は、いくつかのテストケースでは、XMLGregorianCalendarオブジェクトではなく、Dateオブジェクトとしてpayload.arrivalDateTimeを取得していることです。

https://docs.oracle.com/javase/7/docs/api/javax/xml/datatype/XMLGregorianCalendar.html

+0

が、時には同じテストケースには、同じ入力ファイルを渡しましたし、いつかそれが失敗しました。また、パッケージをビルドしてサーバーにデプロイする場合、同じ問題が発生します。 –

関連する問題