我有一个使用这些技术的项目,我遇到了很多问题。第一个是这个错误: -
org.apache.tapestry5.ioc.internal.util.TapestryException:异常构造服务'ValueEncoderSource':错误调用服务构建器方法org.apache.tapestry5.services.TapestryModule.buildValueEncoderSource(Map,InvalidationEventHub)(在TapestryModule.java) :1910)(对于服务'ValueEncoderSource'):调用服务贡献方法时出错org.apache.tapestry5.hibernate.HibernateModule.contributeValueEncoderSource(MappedConfiguration,boolean,HibernateSessionSource,Session,TypeCoercer,PropertyAccess,LoggerSource):异常构造服务'HibernateSessionSource':调用服务构建器方法时出错org.apache.tapestry5.hibernate.HibernateCoreModule.buildHibernateSessionSource(Logger,List,RegistryShutdownHub)(在HibernateCoreModule.java:123)(对于服务'HibernateSessionSource'):org.hibernate.validator.event.ValidateEventListener不能强制转换为org.hibernate.event.PreInsertEventListener [在classpath:org / apache / tapestry5 / corelib / components / ExceptionD isplay.tml,第3行]
这是使用最新的hibernate注释(版本3.4.0 GA)。在Maven pom.xml中,如果我将org.hibernate依赖项更改为: -
org.hibernate作为 冬眠的注解 3.2.1.ga
错误消失了,但是我们从新版本的注释中丢失了错误修复。有没有人知道这方面的方法?
答案 0 :(得分:1)
您是否有机会部署到自带Hibernate库的应用程序服务器,例如JBoss?在这种情况下,您可能会混合不兼容的Hibernate Core和Hibernate Annotations版本。
尝试删除应用程序服务器附带的Hibernate JAR,看看它是否有效。
答案 1 :(得分:1)
是的,我使用所有这些技术构建了一个Web应用程序。 我不使用tapestry-hibernate模块,只是使用tapestry-spring,让Spring处理所有数据库/ hibernate /事务。
你的问题,特别是你为它描述的修复,听起来真的像是一个库兼容性问题。您使用的是Tapestry的哪个版本?
对于tapestry-hibernate的5.1版本,它说
在Tapestry网站上编译此库 Hibernate的版本3.3.1.GA(和 版本3.4.0.GA hibernate-annotations),但应该 使用更新的版本。
,所以你应该没问题。
答案 2 :(得分:0)
我使用过spring,hibernate和CXF。 CXF用于将我的接口服务转换为Web服务。比我看到的任何其他Web服务框架更容易使用。