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相关推荐

  1. Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 上一篇我们介绍了在使用JdbcTemplate来做数据访 ...

  2. Spring Boot 应用系列 1 -- Spring Boot 2 整合Spring Data JPA和Druid,双数据源

    最近Team开始尝试使用Spring Boot + Spring Data JPA作为数据层的解决方案,在网上逛了几圈之后发现大家并不待见JPA,理由是(1)MyBatis简单直观够用,(2)以Hib ...

  3. Spring Data JPA 从入门到精通~默认数据源的讲解

    默认数据源 spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://1 ...

  4. node在regedit配置哪个位置_Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置

    上一篇我们介绍了在使用JdbcTemplate来做数据访问时候的多数据源配置实现.接下来我们继续学习如何在使用Spring Data JPA的时候,完成多数据源的配置和使用. 添加多数据源的配置 先在 ...

  5. SpringBoot集成Spring Data JPA多数据源(二)

    目录 1.引入依赖 2.application.yml配置文件 3.AtomikosJtaPlatform 4.事务管理器JPAAtomikosTransactionConfig 5.主数据源配置 6 ...

  6. datav本地部署 java,Spring Boot对Spring Data JPA的自动配置

    一 点睛 Spring Boot对Spring Data JPA的自动配置放置在如下路径: 二 源码分析 1 JpaRepositoriesAutoConfiguration类分析 @Configur ...

  7. Spring Boot 2.x基础教程:使用Spring Data JPA访问MySQL

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 作者 | 翟永超 来源 | http://blog.di ...

  8. 使用Spring Rest和Spring Data JPA和H2以及Spring Boot示例的Restful API

    你好朋友, 在本教程中,您将学习以下内容: 1.在Spring Boot中配置Spring Rest,Spring Data JPA和H2 2.使用Spring Boot创建Springful服务端点 ...

  9. Spring Boot 最佳实践(五)Spring Data JPA 操作 MySQL 8

    ## 一.Spring Data JPA 介绍 JPA(Java Persistence API)Java持久化API,是 Java 持久化的标准规范,Hibernate是持久化规范的技术实现,而Sp ...

  10. Spring Boot整合Spring Data JPA操作数据

    一. Sping Data JPA 简介 Spring Data JPA 是 Spring 基于 ORM 框架.JPA 规范的基础上封装的一套 JPA 应用框架,底层使用了 Hibernate 的 J ...

最新文章

  1. jquery选择器的使用方式
  2. DevExpress的XtraReport中的Report Bands介绍和使用心得(帮助文档)
  3. cocos2d 走动椭圆
  4. vim配置c语言开发环境变量,gcc配置和vim编程
  5. Django 发送邮件
  6. 《机器学习与数据科学(基于R的统计学习方法)》——2.8 读取JSON文件
  7. html帧动画效果,利用css3-animation实现逐帧动画效果
  8. UIImageView三种方式 和 位置分布
  9. java 开发中常用的字符串工具类,StringUtil
  10. JVM——Java类加载机制总结
  11. 使用微信提供的云开发实现后端 微信小程序云开发的内容管理CMS
  12. Request模块实战04 ---- 爬取豆瓣电影排行榜
  13. 欧洲人“家里蹲”,差点把美国互联网搞“瘫痪”
  14. U盘git仓库快速拷贝
  15. r5 7530u和r7 5825u差距 r57530u和r75825u对比
  16. 迁移学习系列--领域泛化
  17. linux开机动画制作教程,Android开机画面制作(Bootloader阶段)
  18. 【读书】张萌作品:《人生效率手册:如何卓有成效地过好每一天》
  19. html javascript div 加边框,html div 加边框样式
  20. [BZOJ3653][长链剖分]谈笑风生

热门文章

  1. Unity3D TestTool Part _1
  2. html 页间传送数据,js 不同页面间传递值并取值,html不同页面间数据传递
  3. linux twiki 添加权限,Linux安装TWiki
  4. MySQL select后面的子查询使用
  5. MySQL高级 - like模糊匹配
  6. SpringSecurity 案例父工程创建
  7. Nginx服务的命令行控制
  8. 文件到集合改进版【应用】
  9. SpringMVC拦截器-快速入门详解(应用)
  10. 几个使用linux内核的系统,[科普] Linux 的内核与 Linux 系统之间的关系