[color=#FF0000]java.lang.NullPointerException
com.hq.ictbox.struts.action.UserAction.execute(UserAction.java:53)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
[/color]下面是Action:
package com.hq.ictbox.struts.action;import com.hq.ictbox.hi.dao.TbBoxDAO;
import com.hq.ictbox.hi.dao.TbUserDAO;
import com.opensymphony.xwork2.ActionSupport;public class UserAction extends ActionSupport
{
private static String FORWARD = null; // Action类公用私有变量,用来做页面导航标志
private String userName;
private String userPassword;
private TbUserDAO tbUserDAO;
private TbBoxDAO tbBoxDAO; // 依赖注入业务逻辑组件的setter方法
public void setTbUserDAO(TbUserDAO tbUserDAO)
{
this.tbUserDAO = tbUserDAO;
} // 依赖注入业务逻辑组件的setter方法
public void setTbBoxDAO(TbBoxDAO tbBoxDAO)
{
this.tbBoxDAO = tbBoxDAO;
} public String getUserName()
{
return userName;
} public void setUserName(String userName)
{
this.userName = userName;
} public String getUserPassword()
{
return userPassword;
} public void setUserPassword(String userPassword)
{
this.userPassword = userPassword;
} public String execute() throws Exception
{
userName = getUserName().trim(); // 属性值即JSP页面上输入的值
userPassword = getUserPassword().trim(); // 属性值即JSP页面上输入的值
System.out.print(userName);
System.out.print(userPassword);
tbUserDAO.print(userName,userPassword;)这行的print()只是一个简单的打印方法.........................................53行 try
{
FORWARD = "success"; } catch (Exception ex)
{
ex.printStackTrace();
}
return FORWARD;
}}
配置文件:
<?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.0.xsd">

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/db_ictboxm" />
<property name="username" value="root" />
<property name="password" value="caiqi" />
</bean>     


<!-- Configuration hibernate -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>
<property name="mappingResources">
<list>
<value>com/hq/ictbox/hi/mapping/TbUser.hbm.xml</value>
<value>com/hq/ictbox/hi/mapping/TbBox.hbm.xml</value>
<value>com/hq/ictbox/hi/mapping/TbExt.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
<prop key="show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>
</bean>

<bean id="TbUserDAO" class="com.hq.ictbox.hi.dao.TbUserDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="TbBoxDAO" class="com.hq.ictbox.hi.dao.TbBoxDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<bean id="TbExtDAO" class="com.hq.ictbox.hi.dao.TbExtDAO">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>



<!-- Configuration transaction -->
<bean id="transactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean>

<bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">
<property name="transactionManager" ref="transactionManager" />
<property name="transactionAttributes">
<props>
<prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>
<prop key="*">PROPAGATION_REQUIRED</prop>
</props>
</property>
</bean>

<bean id="BeanNameAutoProxyCreator" class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">
<property name="beanNames">
<list>
<value>IUserDao</value>
</list>
</property>
<property name="interceptorNames">
<list>
<value>transactionInterceptor</value>
</list>
</property>
</bean>
</beans>