私はGroovyを数年間使用していますが、ここ数か月は使用していないため、これは初心者の質問かもしれません. ログファイルを解析しようとしていますが、これを実行しようとすると:
myFile.eachLine { line ->
/* 2014 Jul 30 08:55:42:645 GMT -4 BW.TMSJobService-TMSJobService-1
* User [BW-User] - Job-2584 [Process/Common/LogAuditInfo.process/WriteToLog]: */
/* 1234567890123456789012345678901 */
/* 0 1 2 3 */
LogItem logItem = new LogItem()
// get the time stamp
String timestamp = line.substring(0, 31)
SimpleDateFormat sdf = new SimpleDateFormat('yyyy MMM dd HH:mm:ss:S')
logItem.date = sdf.parse(timestamp)
}
私はこの例外を受け取ります:
スレッド「メイン」の例外 groovy.lang.MissingMethodException: メソッドの署名がありません: java.text.SimpleDateFormat.parse() は引数の型に適用されます: (java.lang.String, ce.readscript.TmsLogReader$_read_closure1_closure3) 値: [ 2014 年 7 月 30 日 08:34:47:079 GMT -4、ce.readscript.TmsLogReader$_read_closure1_closure3@14235ed5] 可能な解決策: parse(java.lang.String)、parse(java.lang.String、java.text.ParsePosition) 、 parse(java.lang.String, java.text.ParsePosition)、wait()、clone()、org.codehaus.scriptBytecodeAdapter.unwrap(ScriptBytecodeAdapter.java:55) の clone() org.codehaus. .groovy.runtime.callsite.PojoMetaClassSite.call(PojoMetaClassSite.java:46) at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
これは常にクロージャの最後の行です。「解析」の後にコードを追加すると、このコードが爆発します。"079".toLong() 呼び出しでもエラーが発生します。
スタック オーバーフローで同様のエラーがいくつか見られますが、問題を解決するものは何もありません。