我在 JBoss 5.1 上使用 Hibernate 3.4 时遇到了一些问题。Hibernate 3.4 是一个 JPA 1.0 实现,所以在 JBoss 5.1 中使用应该没问题。问题是 JBoss 有自己的 Hibernate 版本,它位于 /common/lib 而我不想使用 JBoss 提供的版本。我所做的是从该文件夹中删除了 hibernate-annotations.jar、hibernate-commons-annotations.jar、hibernate-core.jar、hibernate-entitymanager.jar、hibernate-jmx.jar 和 hibernate-validator.jar 并放入我的 Hibernate 3.4 jars 进入 server/default/lib 目录。我还将 hibernate-validator.jar 3.1.0 编译到我的 war 文件中,因为否则 JBoss 似乎无法识别验证器的位置。完成以上所有操作后,我将我的 war 文件打包并部署到 deploy 文件夹。
服务器启动没有问题。但是当我尝试访问我的 Web 应用程序时,它会抛出一个错误:
java.lang.Thread.run(Thread.java:662) 处的 JioEndpoint$Worker.run(JIoEndpoint.java:447) 原因:org.springframework.beans.factory.BeanCreationException:创建名称为“org.springframework”的 bean 时出错。 validation.beanvalidation.LocalValidatorFactoryBean#0':调用 init 方法失败;嵌套异常是 javax.validation.ValidationException: Unable to find a default provider at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1412) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean (AbstractAutowireCapableBeanFactory.java:519) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456) 在 org.
看起来它仍然找不到验证器。但它已经在war文件中。我已经在码头服务器上测试了我的网络应用程序,它运行良好。我在 JBoss 配置中做错了什么?