Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Windows服务中的SQLSessionFactory引发NullPointerException_Java_Spring_Mybatis - Fatal编程技术网

Java Windows服务中的SQLSessionFactory引发NullPointerException

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

当我从命令行(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定义:

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