jboss下jpa配置出了问题Context initialization failed,求救啊,折腾了一天了~~~

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jboss下jpa配置出了问题Context initialization failed,求救啊,折腾了一天了~~~相关的知识,希望对你有一定的参考价值。

ERROR ContextLoader:215 - Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name

'activeCustomerAction': Injection of resource fields failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name

'customerBiz': Injection of resource fields failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name

'customerDao': Injection of persistence fields failed;
nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name

'entityManagerFactory' defined in class path resource [applicationContext.xml]: Cannot create inner bean

'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#b3ea59' of type

[org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter] while setting bean property

'jpaVendorAdapter'; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating

bean with name 'org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter#b3ea59' defined in class path

resource [applicationContext.xml]: Initialization of bean failed;
nested exception is org.springframework.beans.TypeMismatchException: Failed to convert property value of

type [java.lang.String] to required type [org.springframework.orm.jpa.vendor.Database] for property

'database';
nested exception is java.lang.IllegalArgumentException: Cannot convert value of type [java.lang.String] to

required type [org.springframework.orm.jpa.vendor.Database] for property 'database': no matching editors or

conversion strategy found
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessAfterInstantiation

(CommonAnnotationBeanPostProcessor.java:292)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean

(AbstractAutowireCapableBeanFactory.java:959)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean

(AbstractAutowireCapableBeanFactory.java:472)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory$1.run

(AbstractAutowireCapableBeanFactory.java:409)
at java.security.AccessController.doPrivileged(Native Method)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean

(AbstractAutowireCapableBeanFactory.java:380)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:264)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton

(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:261)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

参考技术A cannot convert value of type
[java.lang.String] to required type
[org.springframework.orm.jpa.vendor.Database] for property 'database': no matching editors or conversion strategy found
at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessA

你数据源配置的有问题吧,怎么会有类型转换异常呢?

使用 Jboss 和 JPA(休眠)配置 JDBC oracle 特定属性 v$session.program

【中文标题】使用 Jboss 和 JPA(休眠)配置 JDBC oracle 特定属性 v$session.program【英文标题】:Configure JDBC oracle specific property v$session.program using Jboss and JPA (hibernate) 【发布时间】:2011-03-24 06:47:06 【问题描述】:

我想设置v$session.program Oracle 属性,以便在会话表中提供可用信息。我正在使用 JPA 和 jndi XA 数据源,该数据源是通过部署在 Jboss 的部署文件夹中的 oracle-xa-ds.xml 创建的,因此我无法访问连接的构造函数。 我可以访问 Connection 对象,在 JPA 2 中使用 unwrap,在 JPA 1 中通过将 JPA 转换为 Hibernate 类,但没有属性设置器(只有客户端信息属性是继续启动 JDBC 4.0 的方式)。

所以我的问题是,通过 Jboss 4.2 使用 JPA(带有 Hibernate):

是否可以在persistence.xml中配置v$session.program? 是否可以在 oracle-ds.xml 中配置 v$session.program ? 他们还有其他解决方案吗?

感谢您提供任何有价值的 cmets 和答案!

【问题讨论】:

【参考方案1】:

我今天遇到了同样的问题,经过大量的摆弄和阅读文档后,我终于有了尤里卡时刻:

添加以下参数:

<xa-datasource-property name="connectionProperties">v$session.program=YourUniqueName</xa-datasource-property>

就是这样。

【讨论】:

【参考方案2】:

我很确定这必须记录在某个地方,但我们可以在 JBoss wiki 中找到以下内容:

How To Specify "PROGRAM" Oracle Connection Property

JBoss 版本:JBoss 4.0.3 SP1,Oracle DB 版本:10g

为了能够区分JDBC Oracle 服务器端的连接, 由不同的 JBoss 创建 实例,Oracle 的 PROGRAM 连接 属性可能设置在 Oracle 特定的 JDBC 数据源配置 文件 使用以下标签:

<connection-property name="v$session.program">ADistinguishedNameForPROGRAMProperty</connection-property>

...
<connection-url>AConnectionURL</connection-url>
<connection-property name="v$session.program">ADistinguishedNameForPROGRAMProperty</connection-property>
<driver-class>oracle.jdbc.OracleDriver</driver-class>
...

这样 DBA 可以拥有适当的 粒度:

AWR v$session 视图 检查/评估 PROGRAM 连接的其他工具 财产

【讨论】:

谢谢 Pascal,感谢您的回答,但不幸的是,连接属性不适用于 XA 数据源。对于 XA 数据源,只有 xa-datasource-property 标记可用,并且只能配置可用作 XADataSource JavaBean 属性的属性。我刚找到一个有同样问题的伙伴community.jboss.org/message/227607#227607 @snowflake:Erf,没有注意到您使用的是 XA。需要更多地挖掘这个......如果你没有按照链接的建议实施补丁:) 我希望有机会在 Jboss 5 或更高版本上对其进行测试,然后我将有效地考虑实施补丁!

以上是关于jboss下jpa配置出了问题Context initialization failed,求救啊,折腾了一天了~~~的主要内容,如果未能解决你的问题,请参考以下文章

Jboss部署SpringBoot2 JPA

JBoss 7 缺少 jboss.naming.context.java - 无法运行 EAR

找不到 hibernate 4.3 的 jboss-as-jpa jar

配置 Spring JPA 连接 MySQL

用maven,还需要配置jdbc驱动和数据源吗?

jpa query注解 in函数怎么用