resin下發布項目報錯java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index


我的resin版本為4.0.56;

項目在tomcat下啟動正常,打包在resin下發布時報錯:java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index;

嘗試了各種解決方式,沒有滿意的;

分析問題這是一個hibernate jpa的錯誤,如果說tomcat啟動正常那么說明你當前項目的jpa是沒有問題,那么放到resin下發布時,有什么不同,是不是resin

自帶了和jpa相關的jar包,那么到resin下去看看是否有和jpa相關的jar包,果然在resin啟動時,他有自帶的jpa包;

在resion/lib/下

在javaee-16.jar下有一個javax.persistence.Table實體,這時候問題原因知道了,在resin啟動是應用了這個包下的Table實體,而在項目中用的是

hibernate-jpa-2.1-api-1.0.0.Final.jar下的Table實體,現在就是怎么讓resin在啟動是加載hibernate-jpa-2.1-api-1.0.0.Final.jar而不是javaee-16.jar的問題,

首先在resin下新建目錄ext-lib,將hibernate-jpa-2.1-api-1.0.0.Final.jar放入其中;然后編輯resin/conf/resin.properties文件,如圖所示:

編輯完成保存,再打開resin/conf/cluster-default.xml文件,進行編輯,如圖所示:

添加jvm-classpath節點,保存;

此時重啟resin發布項目不會再報java.lang.NoSuchMethodError: javax.persistence.Table.indexes()[Ljavax/persistence/Index這個錯了.

希望對大家有用.以免踩坑


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM