使用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>

解决方案 »

  1.   

    <context:component-scan base-package="你的包名" />加上上面这句代码,你用了annotation事务,没注册
      

  2.   

    我这问题关注的人真少啊,感谢您的参与。<context:component-scan base-package="你的包名" />
    这句有,注上的原因是查找问题在那个位置。
      

  3.   

    问题已解决。问题主要在这个文件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