最近在使用tapestry5.1.0.5開發項目的時候,突然報錯:
Exception in thread "main" java.lang.ClassFormatError: Invalid length 561 in LocalVariableTable in class file
在網上搜索后,發現有人也有同樣的錯誤,解決方法有兩種:
http://mail-archives.apache.org/mod_mbox/tapestry-users/200909.mbox/%3Cecd0e3310909040909id5275beld935fc60d54d490a@mail.gmail.com%3E
其中一個人的錯誤原因是在其類路徑中有不同版本的javassists的jar文件。
另一個的解決方法是使用eclipse自帶的jdk來編譯java類。
而我自己仔細檢查了類路徑中的文件,并沒有重復的javassists,不過我覺得問題應該就在javassists上,
因為這顯然是javassists在操作class文件時報的錯誤,
我去網上搜索這方面的信息,發現有好幾個人都和我一樣在使用javassists3.11.0GA版本的時候,會出現這個錯誤。
后來,我改用Tapestry5中自帶的javassists3.9.0GA后,問題消失了。
這次經驗教訓是并不是所有最新的東西都是最好的。合適的才是最好的。