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)
。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。
[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 7 缺少 jboss.naming.context.java - 无法运行 EAR