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