我初学SSH,做了个项目 ,有DAO,biz,action,entity。
项目中第一个“添加功能”可以运行,spring文件工作正常。
我就又加入“查询功能”,总是显示:
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.hq.repair.action.ListAction.execute(ListAction.java:48)ListAction就是我新加入的查询功能,ListAction.java:48行代码是:
request.setAttribute("list", applyBiz.findAll());
这个项目中,我的添加功能和查询功能共用一个DAO,BIZ。 而action是两个不同的。
所以在spring配置文件中我添加了如下:
<bean name="/list" class="com.hq.repair.action.ListAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>查找原因,在ListAction中如果实例化applyBiz这个属性,这个问题就没有了,而出现另一个biz类文件中DAO的空指针错误。
这是不是说明在运行的时候,spring没有工作呢?
我打开已经成功的添加功能页面,没问题。但是到了新做的查询功能就不行。请问大侠这是怎么回事呢???完整spring文件:
<?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="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hq"/>
<property name="username" value="sa"/>
<property name="password" value="sa"/>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 下面是自动生成的 -->
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
<property name="dataSource" ref="dataSource"></property>
<property name ="mappingResources">
<list>
<value> com/hq/repair/entity/Repair.hbm.xml </value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- <bean id="applyDAO"
class="com.hq.repair.dao.hibimpl.ApplyDAOHibimpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
-->
<bean id="applyDAO"
class="com.hq.repair.dao.hibimpl.ApplyDAOHibimpl">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
<bean id="applyBiz" class="com.hq.repair.biz.impl.ApplyBizImpl">
<property name="applyDAO" ref="applyDAO"></property>
</bean>
<bean name="/repair" class="com.hq.repair.action.ApplyAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>
<bean name="/list" class="com.hq.repair.action.ListAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>
</beans>
项目中第一个“添加功能”可以运行,spring文件工作正常。
我就又加入“查询功能”,总是显示:
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at com.hq.repair.action.ListAction.execute(ListAction.java:48)ListAction就是我新加入的查询功能,ListAction.java:48行代码是:
request.setAttribute("list", applyBiz.findAll());
这个项目中,我的添加功能和查询功能共用一个DAO,BIZ。 而action是两个不同的。
所以在spring配置文件中我添加了如下:
<bean name="/list" class="com.hq.repair.action.ListAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>查找原因,在ListAction中如果实例化applyBiz这个属性,这个问题就没有了,而出现另一个biz类文件中DAO的空指针错误。
这是不是说明在运行的时候,spring没有工作呢?
我打开已经成功的添加功能页面,没问题。但是到了新做的查询功能就不行。请问大侠这是怎么回事呢???完整spring文件:
<?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="dataSource"
class="org.apache.commons.dbcp.BasicDataSource"
destroy-method="close">
<property name="driverClassName" value="com.microsoft.jdbc.sqlserver.SQLServerDriver"/>
<property name="url" value="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=hq"/>
<property name="username" value="sa"/>
<property name="password" value="sa"/>
</bean> <bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<!-- 下面是自动生成的 -->
<property name="configLocation"
value="classpath:hibernate.cfg.xml">
</property>
<property name="dataSource" ref="dataSource"></property>
<property name ="mappingResources">
<list>
<value> com/hq/repair/entity/Repair.hbm.xml </value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.SQLServerDialect
</prop>
<prop key="hibernate.show_sql">true</prop>
</props>
</property>
</bean>
<!-- <bean id="applyDAO"
class="com.hq.repair.dao.hibimpl.ApplyDAOHibimpl">
<property name="sessionFactory">
<ref bean="sessionFactory"/>
</property>
</bean>
-->
<bean id="applyDAO"
class="com.hq.repair.dao.hibimpl.ApplyDAOHibimpl">
<property name="sessionFactory" ref="sessionFactory">
</property>
</bean>
<bean id="applyBiz" class="com.hq.repair.biz.impl.ApplyBizImpl">
<property name="applyDAO" ref="applyDAO"></property>
</bean>
<bean name="/repair" class="com.hq.repair.action.ApplyAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>
<bean name="/list" class="com.hq.repair.action.ListAction">
<property name="applyBiz" ref="applyBiz"></property>
</bean>
</beans>
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货