网站运行环境是tomcat6,使用了
hibernate-distribution-3.3.2.GA
hibernate-annotations-3.4.0.GA
hibernate-validator-4.0.2.GA
struts-2.1.8.1
和
struts2-fullhibernatecore-plugin-2.2-GA.jar
在进行validate时出现了错误
java.lang.NoSuchMethodError: javax.persistence.Persistence.getPersistenceUtil()Ljavax/persistence/PersistenceUtil
根据错误信息可知,是方法没有找到,在网上搜索了相关文章,初步判断是jpa的版本使用有误。进一步分析,发现hibernate-annotations-3.4.0.GA中的ejb3-persistence.jar文件和
hibernate-validator-4.0.2.GA中的jpa-api-2.0.Beta-20090815.jar文件是jpa库的不同版本,并且前一个库是老版本。
解决办法就是在项目中保留jpa-api-2.0.Beta-20090815.jar,删除ejb3-persistence.jar,这样网站的验证过程得以进行。