Java Windows服务中的SQLSessionFactory引发NullPointerException
当我从命令行(java-jarforward.jar)运行我的应用程序时,一切正常,没有抛出异常。但是,当运行与windows服务相同的应用程序时,我会得到NullPointerException 19.06.2014 14:44:46.442[DefaultListableBeanFactory][AbstractBeanFactory.java][DEBUG][Thread-0]忽略bean创建 FactoryBean类型检查异常: org.springframework.beans.factory.unsatifiedDependencyException: 创建URL中定义了名为“phoneNumberRepository”的bean时出错 [jar:file:/C:/forward.jar!/com/forward/persistence/db/PhoneNumberRepository.class]: 通过bean属性表示的未满足的依赖关系 'sqlSessionFactory'::创建名为的bean时出错 URL中定义了“sqlSessionFactory” [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]:调用 初始化方法失败;嵌套异常是java.lang.NullPointerException 然后 原因: org.springframework.beans.factory.noSuchBean定义异常:否 类型的限定bean 为找到[com.forward.persistence.db.PhoneNumberRepository] 依赖项:至少需要1个符合autowire条件的bean 此依赖项的候选项。依赖项批注: {@org.springframework.beans.factory.annotation.Autowired(required=true)} 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.RaiseNouchBeanDefinitionException(DefaultListableBeanFactory.java:988) ~[spring-beans-3.2.4.RELEASE.jar:3.2.4.RELEASE]at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:858) ~[spring-beans-3.2.4.RELEASE.jar:3.2.4.RELEASE]at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:770) ~[spring-beans-3.2.4.RELEASE.jar:3.2.4.RELEASE]at org.springframework.beans.factory.annotation.AutoWiredNotationBeanPostProcessor$AutoWiredFeldElement.inject(AutoWiredNotationBeanPostProcessor.java:486) ~[spring-beans-3.2.4.RELEASE.jar:3.2.4.RELEASE]。。。28公共框架 省略 这是我的myBatis-context.xml定义:Java Windows服务中的SQLSessionFactory引发NullPointerException,java,spring,mybatis,Java,Spring,Mybatis,当我从命令行(java-jarforward.jar)运行我的应用程序时,一切正常,没有抛出异常。但是,当运行与windows服务相同的应用程序时,我会得到NullPointerException 19.06.2014 14:44:46.442[DefaultListableBeanFactory][AbstractBeanFactory.java][DEBUG][Thread-0]忽略bean创建 FactoryBean类型检查异常: org.springframework.beans.fac
<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"?>
挑选*
来自电话号码
按编号排序;
MyBatis将interphace PhoneNumberRepository映射到此.xml文件以创建bean。问题在于项目编译所在的部署计算机和本地计算机上的Java服务不同。请显示
com.forward.persistence.db.PhoneNumberRepository的定义。
<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>