在使用Struts2+JPA+Spring3的時候,遇到這樣一個錯誤
JPA java.lang.NoSuchFieldError NONE
最後終於找到答案了,原因如下:錯誤是由javax.persistence.LockModeType造成的。
hibernate-jpa-2.0-api-1.0.0.Final.jar和Java EE 5Libraries/javaee.jar都存在此類。
但二者中代碼卻有差異,在hibernate-jpa-2.0-api-1.0.0.Final.jar存在NONE域,在javaee.jar中不存在NONE域。
hibernate3.5.4實現中,需要調用有NONE域的LockModeType類,這裏顯然是使用javaee.jar中的LockModeType類。
解決方法:
將Myeclipse中Java EE 5 Libraries從構建路徑中去除。
perferences->myeclipse->Java Enterprise Project->LibrarySets->Remove JavaEE