Error creating bean with name 'entityManagerFactoryBean'

maya8073 2012-01-17 03:07:54
使用maven+jetty,jetty启动就报如下异常.奖dataSource注掉则能够启动.
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'datasourceServiceConfig': Injection of autowired dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Could not autowire field: private com.xzsoft.hfms.persistence.JpaDatasourceDao com.xzsoft.hfms.service.internal.DatasourceServiceConfig.datasourceRep; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'JpaDatasourceDao': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactoryBean' defined in URL [jar:file:/E:/.m2/repository/com/xzsoft/hfms/hfms-persistence/1.0-SNAPSHOT/hfms-persistence-1.0-SNAPSHOT.jar!/persistence-config.xml]: Invocation of init method failed; nested exception is java.lang.NullPointerException
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:285)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1074)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:517)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:456)
at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:291)
at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)
at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:288)



<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:tx="http://www.springframework.org/schema/tx"
xmlns:context="http://www.springframework.org/schema/context"
xsi:schemaLocation="
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
<!--
<context:property-placeholder location="classpath*:db.properties" />
-->
<!-- 实体管理,提供数据操作 -->
<bean id="entityManagerFactoryBean"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
<property name="dataSource" ref="dataSource" />
<!--
<property name="persistenceUnitName" value="HFMS-PU" />
<property name="persistenceXmlLocation" value="classpath:/META-INF/persistence.xml" />
-->
<!--
<property name="jpaVendorAdapter">
<bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter" />
</property>
-->
</bean>
<bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactoryBean" />
<!--
<property name="dataSource" ref="dataSource" />
-->
</bean>

<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
<property name="driverClass" value="oracle.jdbc.driver.OracleDriver"/>
<property name="jdbcUrl" value="jdbc:oracle:thin:@192.168.9.9:1521:orcl"/>
<property name="user" value="ea"/>
<property name="password" value="ea"/>
<!--
<property name="minPoolSize" value="1" />
<property name="maxPoolSize" value="5" />
<property name="initialPoolSize" value="10" />
<property name="maxIdleTime" value="60" />
<property name="acquireIncrement" value="2" />
<property name="maxStatements" value="0" />
<property name="idleConnectionTestPeriod" value="30" />
<property name="acquireRetryAttempts" value="30" />
<property name="acquireRetryDelay" value="100"/>
<property name="breakAfterAcquireFailure" value="false" />
<property name="testConnectionOnCheckout" value="false" />
-->
</bean>


<bean class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" />

<tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />

<context:annotation-config />
<!--
<context:component-scan base-package="com.xzsoft.hfms.persistence.imp" />
-->
</beans>
...全文
5049 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
maya8073 2012-01-18
  • 打赏
  • 举报
回复
我这问题关注的人真少啊,感谢您的参与。<context:component-scan base-package="你的包名" />
这句有,注上的原因是查找问题在那个位置。
maya8073 2012-01-18
  • 打赏
  • 举报
回复
问题已解决。问题主要在这个文件persistence-config.xml]: Invocation of init method failed;
经过测试观察出只要加载dataSource就报错.不运行整个maven项目,只做jU测试提示WARN ettingsFactory:140 - Could not obtain connection metadata。由此判断oracle驱动方面的问题机率比较大。在网上下载了一个较新的版本,OK了。我原来使用的驱动是从我目前安装的数据库中考出来的,真不明白为什么不好使。(我现在用的9.2.0.1.0)察看oracle版本信息.jar文件\META-INF\MANIFEST.MF。
好用的驱动版本信息如下:
Specification-Version: Oracle JDBC Driver version - "10.2.0.1.0"
Implementation-Version: Oracle JDBC Driver version - "10.2.0.1.0"
Implementation-Vendor: Oracle Corporation
Implementation-Time: Wed Jun 22 18:55:48 2005
Sammie 2012-01-17
  • 打赏
  • 举报
回复
<context:component-scan base-package="你的包名" />

加上上面这句代码,你用了annotation事务,没注册

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧