多数据源使用spring-data-jpa无法部署到JBoss As Server
2019独角兽企业重金招聘Python工程师标准>>>
1.异常信息
Caused by: java.lang.IllegalArgumentException: JBAS011470: Persistence unitName was not specified and there are 2 persistence unit definitions in application deployment "". Either change the application to have only one persistence unit definition or specify the unitName for each reference to a persistence unit.at org.jboss.as.jpa.container.PersistenceUnitSearch.resolvePersistenceUnitSupplier(PersistenceUnitSearch.java:69)at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getPersistenceUnit(JPAAnnotationParseProcessor.java:284)at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.getBindingSource(JPAAnnotationParseProcessor.java:220)at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processMethod(JPAAnnotationParseProcessor.java:186)at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.processPersistenceAnnotations(JPAAnnotationParseProcessor.java:123)at org.jboss.as.jpa.processor.JPAAnnotationParseProcessor.deploy(JPAAnnotationParseProcessor.java:90)at org.jboss.as.server.deployment.DeploymentUnitPhaseService.start(DeploymentUnitPhaseService.java:113) [jboss-as-server-7.1.1.Final.jar:7.1.1.Final]
2.问题原因
1)JBoss在部署应用时,会校验所有被@PersistenceContext、@PersistenceUnit注解了的类、方法及属性
2)在应用中如有有多个persistence units,JBoss会校验所有的注解是否都有unitName
public void deploy(DeploymentPhaseContext phaseContext)throws DeploymentUnitProcessingException{DeploymentUnit deploymentUnit = phaseContext.getDeploymentUnit();EEModuleDescription eeModuleDescription = (EEModuleDescription)deploymentUnit.getAttachment(org.jboss.as.ee.component.Attachments.EE_MODULE_DESCRIPTION);CompositeIndex index = (CompositeIndex)deploymentUnit.getAttachment(org.jboss.as.server.deployment.Attachments.COMPOSITE_ANNOTATION_INDEX);EEApplicationClasses applicationClasses = (EEApplicationClasses)deploymentUnit.getAttachment(org.jboss.as.ee.component.Attachments.EE_APPLICATION_CLASSES_DESCRIPTION);List persistenceContexts = index.getAnnotations(PERSISTENCE_CONTEXT_ANNOTATION_NAME);processPersistenceAnnotations(deploymentUnit, eeModuleDescription, persistenceContexts, applicationClasses);List persistenceUnits = index.getAnnotations(PERSISTENCE_UNIT_ANNOTATION_NAME);processPersistenceAnnotations(deploymentUnit, eeModuleDescription, persistenceUnits, applicationClasses);if ((!persistenceContexts.isEmpty()) || (!persistenceUnits.isEmpty()))JPADeploymentMarker.mark(deploymentUnit);}
3)spring-data-jpa的jar包中的JpaRepositoryFactoryBean类中有个表有@PersistenceContext注解的方法,且未指明unitName,所以无法通过JBoss的校验
public class JpaRepositoryFactoryBean<T extends Repository<S, ID>, S, ID extends Serializable> extends TransactionalRepositoryFactoryBeanSupport<T, S, ID>
{private EntityManager entityManager;@PersistenceContextpublic void setEntityManager(EntityManager entityManager){this.entityManager = entityManager;}
3.问题处理
在JBoss7.1版本中,以上问题无法解决,根据JBoss的JIRA上的信息,这个问题在7.2.0.Final版本中修复
4.参考资料
1)multilpe persistence units with spring-data-jpa will not deploy to JBoss AS Server
2)PersistenceUnitSearch violates the JPA spec
转载于:https://my.oschina.net/JasonZhang/blog/540461
多数据源使用spring-data-jpa无法部署到JBoss As Server相关推荐
- Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 上一篇我们介绍了在使用JdbcTemplate来做数据访 ...
- Spring Boot 应用系列 1 -- Spring Boot 2 整合Spring Data JPA和Druid,双数据源
最近Team开始尝试使用Spring Boot + Spring Data JPA作为数据层的解决方案,在网上逛了几圈之后发现大家并不待见JPA,理由是(1)MyBatis简单直观够用,(2)以Hib ...
- Spring Data JPA 从入门到精通~默认数据源的讲解
默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...
- node在regedit配置哪个位置_Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置
上一篇我们介绍了在使用JdbcTemplate来做数据访问时候的多数据源配置实现.接下来我们继续学习如何在使用Spring Data JPA的时候,完成多数据源的配置和使用. 添加多数据源的配置 先在 ...
- SpringBoot集成Spring Data JPA多数据源(二)
目录 1.引入依赖 2.application.yml配置文件 3.AtomikosJtaPlatform 4.事务管理器JPAAtomikosTransactionConfig 5.主数据源配置 6 ...
- datav本地部署 java,Spring Boot对Spring Data JPA的自动配置
一 点睛 Spring Boot对Spring Data JPA的自动配置放置在如下路径: 二 源码分析 1 JpaRepositoriesAutoConfiguration类分析 @Configur ...
- Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL
点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...
- 使用Spring Rest和Spring Data JPA和H2以及Spring Boot示例的Restful API
你好朋友, 在本教程中,您将学习以下内容: 1.在Spring Boot中配置Spring Rest,Spring Data JPA和H2 2.使用Spring Boot创建Springful服务端点 ...
- Spring Boot 最佳实践(五)Spring Data JPA 操作 MySQL 8
## 一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sp ...
- Spring Boot整合Spring Data JPA操作数据
一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...
最新文章
- jquery选择器的使用方式
- DevExpress的XtraReport中的Report Bands介绍和使用心得(帮助文档)
- cocos2d 走动椭圆
- vim配置c语言开发环境变量,gcc配置和vim编程
- Django 发送邮件
- 《机器学习与数据科学(基于R的统计学习方法)》——2.8 读取JSON文件
- html帧动画效果,利用css3-animation实现逐帧动画效果
- UIImageView三种方式 和 位置分布
- java 开发中常用的字符串工具类,StringUtil
- JVM——Java类加载机制总结
- 使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS
- Request模块实战04 ---- 爬取豆瓣电影排行榜
- 欧洲人“家里蹲”,差点把美国互联网搞“瘫痪”
- U盘git仓库快速拷贝
- r5 7530u和r7 5825u差距 r57530u和r75825u对比
- 迁移学习系列--领域泛化
- linux开机动画制作教程,Android开机画面制作(Bootloader阶段)
- 【读书】张萌作品:《人生效率手册:如何卓有成效地过好每一天》
- html javascript div 加边框,html div 加边框样式
- [BZOJ3653][长链剖分]谈笑风生
热门文章
- Unity3D TestTool Part _1
- html 页间传送数据,js 不同页面间传递值并取值,html不同页面间数据传递
- linux twiki 添加权限,Linux安装TWiki
- MySQL select后面的子查询使用
- MySQL高级 - like模糊匹配
- SpringSecurity 案例父工程创建
- Nginx服务的命令行控制
- 文件到集合改进版【应用】
- SpringMVC拦截器-快速入门详解(应用)
- 几个使用linux内核的系统,[科普] Linux 的内核与 Linux 系统之间的关系