spring的action中java.lang.NullPointerException的问题

zuoyangguang 2007-03-30 05:02:45
applicationContext.xml的内容
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">



<beans>

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName">

<value>com.microsoft.jdbc.sqlserver.SQLServerDriver</value>

</property>

<property name="url">

<value>jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=pubs</value>

</property>

<property name="username">

<value>sa</value>

</property>

<property name="password">

<value>123</value>

</property>

</bean>



<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">

<property name="dataSource">

<ref bean="dataSource" />

</property>



<property name="mappingResources">

<list>

<value>com/yourcompany/hibernate/usermanager.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="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>





<!-- Spring的数据访问异常转换器(Data Access Exception Translator)定义 -->

<bean id="jdbcExceptionTranslator" class="org.springframework.jdbc.support.SQLErrorCodeSQLExceptionTranslator">

<property name="dataSource">

<ref bean="dataSource" />

</property>

</bean>



<!-- Hibernate Template定义 -->

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate">

<property name="sessionFactory">

<ref bean="sessionFactory" />

</property>

<property name="jdbcExceptionTranslator">

<ref bean="jdbcExceptionTranslator" />

</property>

</bean>



<!--baseTransactionProxy -->

<bean abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean" id="baseTransactionProxy">

<property name="transactionManager">

<ref bean="transactionManager" />

</property>

<property name="transactionAttributes">

<props>

<prop key="save*">PROPAGATION_REQUIRED</prop>

<prop key="update*">PROPAGATION_REQUIRED</prop>

<prop key="find*">PROPAGATION_REQUIRED</prop>

<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>





<bean id="userDao" class="com.yourcompany.hibernate.UsermanagerDao">

<property name="sessionFactory">

<ref local="sessionFactory" />

</property>

</bean>





<bean id="userManagerTarget" class="com.yourcompany.hibernate.IMPIUsermanager">

<property name="tuserDao">

<ref local="userDao" />

</property>

</bean>



<bean id="userManager" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean">

<!-- .TransactionProxyFactoryBean"> -->

<property name="transactionManager">

<ref bean="transactionManager" />

</property>



<property name="target">

<ref local="userManagerTarget" />

</property>



<property name="proxyTargetClass">

<value>true</value>

</property>

<property name="transactionAttributes">

<props>

<prop key="save*">PROPAGATION_REQUIRED</prop>

<prop key="remove*">PROPAGATION_REQUIRED,readOnly</prop>

<prop key="*">PROPAGATION_REQUIRED,readOnly</prop>

</props>

</property>

</bean>


<bean name="/usermanager" class="com.yourcompany.struts.action.UsermanagerAction" singleton="false">

<property name="um">

<ref bean="userManager" />

</property>

</bean>


</beans>

struts-config.xml的内容
<?xml version="1.0" encoding="UTF-8"?>

<!DOCTYPE struts-config PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 1.1//EN" "http://jakarta.apache.org/struts/dtds/struts-config_1_1.dtd">



<struts-config>

<data-sources />

<form-beans />

<global-exceptions />

<global-forwards />

<action-mappings >

<action path="/usermanager" type="org.springframework.web.struts.DelegatingActionProxy" scope="request" parameter="method" validate="false">

<forward name="tosuccess" path="/tosuccess.jsp" />



</action>

</action-mappings>



<message-resources parameter="com.yourcompany.struts.ApplicationResources" />

<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

<!--set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" /-->

</plug-in>





</struts-config>

action的内容
/*

* Generated by MyEclipse Struts

* Template path: templates/java/JavaClass.vtl

*/

package com.yourcompany.struts.action;



import java.util.List;



import javax.servlet.http.HttpServletRequest;

import javax.servlet.http.HttpServletResponse;

import javax.sql.DataSource;



import org.apache.struts.action.Action;

import org.apache.struts.action.ActionForm;

import org.apache.struts.action.ActionForward;

import org.apache.struts.action.ActionMapping;

import org.springframework.web.context.WebApplicationContext;

import org.springframework.web.context.support.WebApplicationContextUtils;



import com.yourcompany.hibernate.IMPIUsermanager;

import com.yourcompany.hibernate.IUsermanager;

import com.yourcompany.hibernate.IUsermanagerDao;



/**

* MyEclipse Struts

* Creation date: 03-29-2007

*

* XDoclet definition:

* @struts.action validate="true"

*/

public class UsermanagerAction extends Action {

/*

* Generated Methods

*/



/**

* Method execute

* @param mapping

* @param form

* @param request

* @param response

* @return ActionForward

*/

public IUsermanager um=null;

public void setUm(IUsermanager userManager){

this.um=userManager;



}

public IUsermanager getUserManager(){

return um;



}

public ActionForward execute(ActionMapping mapping, ActionForm form,

HttpServletRequest request, HttpServletResponse response) {

List user=um.getUsers();

System.out.print(user.get(1));

return null;

}

}
提示找不到um,出现空指针错误
...全文
668 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
zuoyangguang 2007-04-03
  • 打赏
  • 举报
回复
问题解决,去掉struts-config.xml中的
<plug-in className="org.springframework.web.struts.ContextLoaderPlugIn">

<!--set-property property="contextConfigLocation" value="/WEB-INF/action-servlet.xml" /-->

</plug-in>
使用插件后,默认读action-servlet.xml中的内容
有办法在action-servlet.xml中使用applicationContext.xml中定义的bean吗?
zuoyangguang 2007-04-01
  • 打赏
  • 举报
回复
是系统注入的吧,就是想让spring自动加载,但是没有成功
HappinessBoy 2007-04-01
  • 打赏
  • 举报
回复
在你的struts配置中, <action path="/usermanager" type="org.springframework.web.struts.DelegatingActionProxy" scope="request" parameter="method" validate="false">,你含有了一个用于分发操作的参数,而你的action却继承的只是org.apache.struts.action.Action,而不是org.apache.struts.actions.DispatchAction;估计是这个原因导致你注入失败的.
关注.
adverse 2007-03-31
  • 打赏
  • 举报
回复
um这个对象没有初始化
anhy 2007-03-30
  • 打赏
  • 举报
回复
代码execute方法中没有设置um,所以是null

67,512

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧