在调用test.java的时候就会报
Exception in thread "main" java.lang.NullPointerException
at cn.m_solution.mds.mds40.service.MDS40T01Service.getStudent(MDS40T01Service.java:23)
at cn.m_solution.mds.mds40.service.test.main(test.java:13)
请大家一定帮忙,已经弄了两天了
moduleContext-sys.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 系统关联设定(必须) -->
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<bean id="ApplicationInfo"
class="net.uniuvo.webridger.beans.ApplicationInfo">
<!-- 应用系统名称 -->
<property name="applicationName" value="mds" />
<!-- 允许直接访问的Action列表 -->
<property name="directAccessActions">
<list>
<value>mds00.do</value>
<value>/mds13.do</value>
<value>/mds40.do</value>
</list>
</property>
<!-- 禁止访问的扩展名列表 -->
<property name="prohibitedExtensions">
<list>
<value>js</value>
<value>css</value>
<value>jsp</value>
<value>html</value>
</list>
</property>
<!-- 禁止访问的扩展名中例外的文件列表 -->
<property name="restrictionEscapeFiles">
<list>
<value>/pages/index.html</value>
<value>/pages/mds40/mds40s00.jsp</value>
</list>
</property>
</bean>
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 数据库关联设定(必须) -->
<!--此bean告诉Spring去哪找数据库的配置信息,因为有此Bean才出现下面用${}标记来取变量的语句-->
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 这里定义了ibatis的配置文件所在的位置 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/config/jdbc/jdbc.properties</value>
</property>
</bean>
<!-- <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">-->
<bean id="ds0" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName0}" />
<property name="url" value="${jdbc.url0}" />
<property name="username" value="${jdbc.username0}" />
<property name="password" value="${jdbc.password0}" />
</bean>
<bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName1}" />
<property name="url" value="${jdbc.url1}" />
<property name="username" value="${jdbc.username1}" />
<property name="password" value="${jdbc.password1}" />
</bean>
<bean id="DataSource" class="net.uniuvo.webridger.dao.DynamicDataSource">
<property name= "targetDataSources">
<map key-type="java.lang.String">
<entry key="ds0" value-ref="ds0"/>
<entry key="ds1" value-ref="ds1"/>
</map>
</property>
<property name="defaultTargetDataSource" ref="ds0"/>
</bean>
<!--这里就声明了具体的事务 -->
<bean id="attrSource"
class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
<property name="properties">
<props>
<prop key="execute*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="select*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义事务处理拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributeSource">
<ref local="attrSource" />
</property>
</bean>
<!-- 定义事务经理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="DataSource" />
</property>
</bean>
<!-- 自动代理 (业务处理Bean的Id) -->
<bean id="autoProxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<idref bean="transactionInterceptor" />
</list>
</property>
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
</bean>
<!-- iBATIS相关设定 -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="/WEB-INF/sqlMapConfig.xml" />
<property name="dataSource">
<ref bean="DataSource" />
</property>
<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
</bean>
<!-- 定义DAO -->
<!-- 检索用DAO -->
<bean id="queryDAO"
class="net.uniuvo.webridger.dao.QueryDAOiBatisImpl">
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<!-- 追加 更新 删除用DAO -->
<bean id="updateDAO"
class="net.uniuvo.webridger.dao.UpdateDAOiBatisImpl">
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<!--根据sqlMapClien创建一个SqlMapClient模版类-->
<bean id="SqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" />
<bean id="oracleLobHandler" lazy-init="true"
class="org.springframework.jdbc.support.lob.OracleLobHandler" >
<property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractor"/></property>
</bean>
<!-- 这里就是Facade了,注意,它有个parent属性,就是这个属性,使它的操作受到了事物管理的限制
<bean id="baseFacade" parent="baseTransactionProxy">
<property name="target">
<bean class="facade.BaseFacadeImpl"> 把DAO做为属性注入到Facade中去
<property name="proDao" ref="proDao" />
<property name="errDao" ref="errDao" />
<property name="userDao" ref="userDao" />
<property name="orderDao" ref="orderDao" />
</bean>
</property>
</bean>
-->
</beans>
sqlmapconfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"/>
<typeHandler jdbcType="CLOB" javaType="java.lang.String" callback="org.springframework.orm.ibatis.support.ClobStringTypeHandler" />
<sqlMap resource="../config/sql/sqlMap-mds.xml" />
<sqlMap resource="../config/sql/sqlMap-mds00.xml" />
<sqlMap resource="../config/sql/sqlMap-mds01.xml" />
<sqlMap resource="../config/sql/sqlMap-mds02.xml" />
<sqlMap resource="../config/sql/sqlMap-mds03.xml" />
<sqlMap resource="../config/sql/sqlMap-mds04.xml" />
<sqlMap resource="../config/sql/sqlMap-mds10.xml" />
<sqlMap resource="../config/sql/sqlMap-mds11.xml" />
<sqlMap resource="../config/sql/sqlMap-mds12.xml" />
<sqlMap resource="../config/sql/sqlMap-mds13.xml" />
<sqlMap resource="../config/sql/sqlMap-mds20.xml" />
<sqlMap resource="../config/sql/sqlMap-mds21.xml" />
<sqlMap resource="../config/sql/sqlMap-mds22.xml" />
<sqlMap resource="../config/sql/sqlMap-mds23.xml" />
<sqlMap resource="../config/sql/sqlMap-mds30.xml" />
<sqlMap resource="../config/sql/sqlMap-mds31.xml" />
<sqlMap resource="../config/sql/sqlMap-mds32.xml" />
<sqlMap resource="../config/sql/sqlMap-mds33.xml" />
<sqlMap resource="../config/sql/sqlMap-mds40.xml" />
</sqlMapConfig>
sqlMap-mds40.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap >
<select id="sql.mds40.001"
parameterClass="cn.m_solution.mds.mds40.form.MDS40Form"
resultClass="cn.m_solution.mds.mds40.form.MDS40Form">
select
syr
from
vehicle
where
hpzl = #hpzl#
and hphm = #hphm#
</select>
</sqlMap>
MDS40T01Service
package cn.m_solution.mds.mds40.service;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import cn.m_solution.mds.mds40.form.MDS40Form;
public class MDS40T01Service {
SqlMapClientTemplate sqlMapClientTemplate;
public MDS40Form getStudent(){
MDS40Form form40 = new MDS40Form();
sqlMapClientTemplate.queryForObject("sql.mds40.001",form40);
return form40;
}
/**
* @return the sqlMapClientTemplate
*/
public SqlMapClientTemplate getSqlMapClientTemplate() {
return sqlMapClientTemplate;
}
/**
* @param sqlMapClientTemplate the sqlMapClientTemplate to set
*/
public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
}
}
test.java
package cn.m_solution.mds.mds40.service;
import org.springframework.jdbc.core.support. JdbcDaoSupport;
public class test extends JdbcDaoSupport{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MDS40T01Service s = new MDS40T01Service();
s.getStudent();
}
}
Exception in thread "main" java.lang.NullPointerException
at cn.m_solution.mds.mds40.service.MDS40T01Service.getStudent(MDS40T01Service.java:23)
at cn.m_solution.mds.mds40.service.test.main(test.java:13)
请大家一定帮忙,已经弄了两天了
moduleContext-sys.xml:
<?xml version="1.0" encoding="UTF-8" ?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 系统关联设定(必须) -->
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<bean id="ApplicationInfo"
class="net.uniuvo.webridger.beans.ApplicationInfo">
<!-- 应用系统名称 -->
<property name="applicationName" value="mds" />
<!-- 允许直接访问的Action列表 -->
<property name="directAccessActions">
<list>
<value>mds00.do</value>
<value>/mds13.do</value>
<value>/mds40.do</value>
</list>
</property>
<!-- 禁止访问的扩展名列表 -->
<property name="prohibitedExtensions">
<list>
<value>js</value>
<value>css</value>
<value>jsp</value>
<value>html</value>
</list>
</property>
<!-- 禁止访问的扩展名中例外的文件列表 -->
<property name="restrictionEscapeFiles">
<list>
<value>/pages/index.html</value>
<value>/pages/mds40/mds40s00.jsp</value>
</list>
</property>
</bean>
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 数据库关联设定(必须) -->
<!--此bean告诉Spring去哪找数据库的配置信息,因为有此Bean才出现下面用${}标记来取变量的语句-->
<!-- +++++++++++++++++++++++++++++++++++++++++ -->
<!-- 这里定义了ibatis的配置文件所在的位置 -->
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="location">
<value>/WEB-INF/config/jdbc/jdbc.properties</value>
</property>
</bean>
<!-- <bean id="DataSource" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">-->
<bean id="ds0" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName0}" />
<property name="url" value="${jdbc.url0}" />
<property name="username" value="${jdbc.username0}" />
<property name="password" value="${jdbc.password0}" />
</bean>
<bean id="ds1" class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="${jdbc.driverClassName1}" />
<property name="url" value="${jdbc.url1}" />
<property name="username" value="${jdbc.username1}" />
<property name="password" value="${jdbc.password1}" />
</bean>
<bean id="DataSource" class="net.uniuvo.webridger.dao.DynamicDataSource">
<property name= "targetDataSources">
<map key-type="java.lang.String">
<entry key="ds0" value-ref="ds0"/>
<entry key="ds1" value-ref="ds1"/>
</map>
</property>
<property name="defaultTargetDataSource" ref="ds0"/>
</bean>
<!--这里就声明了具体的事务 -->
<bean id="attrSource"
class="org.springframework.transaction.interceptor.NameMatchTransactionAttributeSource">
<property name="properties">
<props>
<prop key="execute*">PROPAGATION_REQUIRED</prop>
<prop key="update*">PROPAGATION_REQUIRED</prop>
<prop key="insert*">PROPAGATION_REQUIRED</prop>
<prop key="delete*">PROPAGATION_REQUIRED</prop>
<prop key="select*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>
<!-- 定义事务处理拦截器 -->
<bean id="transactionInterceptor"
class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager">
<ref local="transactionManager" />
</property>
<property name="transactionAttributeSource">
<ref local="attrSource" />
</property>
</bean>
<!-- 定义事务经理 -->
<bean id="transactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource">
<ref local="DataSource" />
</property>
</bean>
<!-- 自动代理 (业务处理Bean的Id) -->
<bean id="autoProxy"
class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="interceptorNames">
<list>
<idref bean="transactionInterceptor" />
</list>
</property>
<property name="beanNames">
<list>
<value>*Service</value>
</list>
</property>
</bean>
<!-- iBATIS相关设定 -->
<bean id="sqlMapClient"
class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="/WEB-INF/sqlMapConfig.xml" />
<property name="dataSource">
<ref bean="DataSource" />
</property>
<property name="lobHandler">
<ref local="oracleLobHandler" />
</property>
</bean>
<!-- 定义DAO -->
<!-- 检索用DAO -->
<bean id="queryDAO"
class="net.uniuvo.webridger.dao.QueryDAOiBatisImpl">
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<!-- 追加 更新 删除用DAO -->
<bean id="updateDAO"
class="net.uniuvo.webridger.dao.UpdateDAOiBatisImpl">
<property name="sqlMapClient">
<ref local="sqlMapClient" />
</property>
</bean>
<!--根据sqlMapClien创建一个SqlMapClient模版类-->
<bean id="SqlMapClientTemplate" class="org.springframework.orm.ibatis.SqlMapClientTemplate">
<property name="sqlMapClient">
<ref bean="sqlMapClient" />
</property>
</bean>
<bean id="nativeJdbcExtractor" lazy-init="true"
class="org.springframework.jdbc.support.nativejdbc.CommonsDbcpNativeJdbcExtractor" />
<bean id="oracleLobHandler" lazy-init="true"
class="org.springframework.jdbc.support.lob.OracleLobHandler" >
<property name="nativeJdbcExtractor"><ref local="nativeJdbcExtractor"/></property>
</bean>
<!-- 这里就是Facade了,注意,它有个parent属性,就是这个属性,使它的操作受到了事物管理的限制
<bean id="baseFacade" parent="baseTransactionProxy">
<property name="target">
<bean class="facade.BaseFacadeImpl"> 把DAO做为属性注入到Facade中去
<property name="proDao" ref="proDao" />
<property name="errDao" ref="errDao" />
<property name="userDao" ref="userDao" />
<property name="orderDao" ref="orderDao" />
</bean>
</property>
</bean>
-->
</beans>
sqlmapconfig.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMapConfig PUBLIC "-//iBATIS.com//DTD SQL Map Config 2.0//EN"
"http://ibatis.apache.org/dtd/sql-map-config-2.dtd">
<sqlMapConfig>
<typeHandler jdbcType="BLOB" javaType="[B" callback="org.springframework.orm.ibatis.support.BlobByteArrayTypeHandler"/>
<typeHandler jdbcType="CLOB" javaType="java.lang.String" callback="org.springframework.orm.ibatis.support.ClobStringTypeHandler" />
<sqlMap resource="../config/sql/sqlMap-mds.xml" />
<sqlMap resource="../config/sql/sqlMap-mds00.xml" />
<sqlMap resource="../config/sql/sqlMap-mds01.xml" />
<sqlMap resource="../config/sql/sqlMap-mds02.xml" />
<sqlMap resource="../config/sql/sqlMap-mds03.xml" />
<sqlMap resource="../config/sql/sqlMap-mds04.xml" />
<sqlMap resource="../config/sql/sqlMap-mds10.xml" />
<sqlMap resource="../config/sql/sqlMap-mds11.xml" />
<sqlMap resource="../config/sql/sqlMap-mds12.xml" />
<sqlMap resource="../config/sql/sqlMap-mds13.xml" />
<sqlMap resource="../config/sql/sqlMap-mds20.xml" />
<sqlMap resource="../config/sql/sqlMap-mds21.xml" />
<sqlMap resource="../config/sql/sqlMap-mds22.xml" />
<sqlMap resource="../config/sql/sqlMap-mds23.xml" />
<sqlMap resource="../config/sql/sqlMap-mds30.xml" />
<sqlMap resource="../config/sql/sqlMap-mds31.xml" />
<sqlMap resource="../config/sql/sqlMap-mds32.xml" />
<sqlMap resource="../config/sql/sqlMap-mds33.xml" />
<sqlMap resource="../config/sql/sqlMap-mds40.xml" />
</sqlMapConfig>
sqlMap-mds40.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE sqlMap PUBLIC "-//iBATIS.com//DTD SQL Map 2.0//EN"
"http://www.ibatis.com/dtd/sql-map-2.dtd">
<sqlMap >
<select id="sql.mds40.001"
parameterClass="cn.m_solution.mds.mds40.form.MDS40Form"
resultClass="cn.m_solution.mds.mds40.form.MDS40Form">
select
syr
from
vehicle
where
hpzl = #hpzl#
and hphm = #hphm#
</select>
</sqlMap>
MDS40T01Service
package cn.m_solution.mds.mds40.service;
import org.springframework.orm.ibatis.SqlMapClientTemplate;
import cn.m_solution.mds.mds40.form.MDS40Form;
public class MDS40T01Service {
SqlMapClientTemplate sqlMapClientTemplate;
public MDS40Form getStudent(){
MDS40Form form40 = new MDS40Form();
sqlMapClientTemplate.queryForObject("sql.mds40.001",form40);
return form40;
}
/**
* @return the sqlMapClientTemplate
*/
public SqlMapClientTemplate getSqlMapClientTemplate() {
return sqlMapClientTemplate;
}
/**
* @param sqlMapClientTemplate the sqlMapClientTemplate to set
*/
public void setSqlMapClientTemplate(SqlMapClientTemplate sqlMapClientTemplate) {
this.sqlMapClientTemplate = sqlMapClientTemplate;
}
}
test.java
package cn.m_solution.mds.mds40.service;
import org.springframework.jdbc.core.support. JdbcDaoSupport;
public class test extends JdbcDaoSupport{
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
MDS40T01Service s = new MDS40T01Service();
s.getStudent();
}
}