2014-06-19 70 views
0

當我從命令行(java -jar forward.jar)運行我的應用程序時,一切正常,沒有拋出異常。但是,當運行與Windows服務相同的應用程序時,我得到NullPointerException。Windows服務中的SQLSessionFactory拋出NullPointerException

2014年6月19日14:44:46.442 [DefaultListableBeanFactory] ​​[AbstractBeanFactory.java] [DEBUG] [線程0]忽略bean創建上的FactoryBean類型檢查 異常: org.springframework.beans.factory.UnsatisfiedDependencyException : 在URL [jar:file:/ C:/forward.jar!/com/forward/persistence/db/PhoneNumberRepository.class]中定義的名稱'phoneNumberRepository'中創建bean的錯誤: 通過bean屬性表達的不滿足的依賴關係 ' sqlSessionFactory'創建名爲 'sqlSessionFactory'的URL在URL中定義的錯誤 [jar:file:/ C:/forward.jar!/ mybatis-context。 xml]:調用init 方法失敗;嵌套異常是java.lang.NullPointerException; 嵌套的異常是 org.springframework.beans.factory.BeanCreationException:錯誤 在URL中定義名爲'sqlSessionFactory'的bean [jar:file:/ C:/prem-forward.jar!/mybatis-context.xml] :調用 init方法失敗;嵌套的異常是顯示java.lang.NullPointerException

然後

所致: org.springframework.beans.factory.NoSuchBeanDefinitionException:否 類型[com.forward.persistence的 排位豆。 db.PhoneNumberRepository]找到 依賴關係:預計至少有1個bean符合自動連線 候選此依賴關係。依賴註解: {@ org.springframework.beans.factory.annotation.Autowired(所需=真)} 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.raiseNoSuchBeanDefinitionException(DefaultListableBeanFactory.java:988) 〜[彈簧-beans-3.2.4.RELEASE.jar:3.2.4.RELEASE]在 org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) 〜[彈簧豆-3.2.4。 RELEASE.jar:3.2.4.RELEASE] org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) 〜[spring-beans-3.2.4.RELEASE.jar:3.2.4 .RELEASE]在 org.springframework.beans.factory.annotation.AutowiredAnnotationBea nPostProcessor $ AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:486) 〜[彈簧豆-3.2.4.RELEASE.jar:3.2.4.RELEASE] ... 28個共同框架 省略

海爾北京時間我myBatis-context.xml定義:

<import resource="classpath*:datasource-context.xml"/> 

<mybatis:scan base-package="com.forward.persistence.db" /> 

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean"> 
    <property name="dataSource" ref="dataSource"/> 
    <property name="typeAliasesPackage" value="com.forward.model"/> <!-- Register the short names of beans as aliases --> 
    <property name="configLocation" value="classpath:mybatis-config.xml"/> 
</bean> 

<bean id="sqlSession" class="org.mybatis.spring.SqlSessionTemplate"> 
    <constructor-arg index="0" ref="sqlSessionFactory" /> 
</bean> 

<!-- scan for mappers and let them be autowired --> 
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer"> 
    <property name="basePackage" value="com.forward.persistence.db" /> 
</bean> 

更新:PhoneNumberRepository的定義。XML是如下

<?xml version="1.0" encoding="UTF-8"?> 

<resultMap type="com.forward.model.PhoneNumber" id="phoneMap"> 
    <result column="number" property="number"/> 
    <result column="partition" property="partition"/> 
</resultMap> 

<select id="findAll" resultMap="phoneMap"> 
    SELECT * 
    FROM PhoneNumber 
    ORDER BY number; 
</select> 

的MyBatis MAPPS的interphace PhoneNumberRepository這個.xml文件創建bean。

+0

請出示com.forward.persistence.db.PhoneNumberRepository'的'定義。 –

回答

0

的問題是與Java服務作爲部署機和本地機器的項目編制上不同。

相關問題