求大虾指点,spring注入时成功,调用时为空

vacan99 2011-02-14 08:12:30
使用的是struts2.1.8 + spring 2.5 + hibernate 3.3
出问题的是UpdateAction,启动tomcat调试时,注入是成功的,activityBiz不为空,
但是页面调用时就成空了
下面是部分源代码,其他类中没有这个问题,全部注入成功,调用时也不为空
如果把这个类改个类名的话就没问题了,但是跟其他包中的action就不统一了
请大虾们看看

这是action类
public class UpdateAction extends ActionSupport{

/**
*
*/
private static final long serialVersionUID = -2462386063736802658L;

private IActivityBiz activityBiz;//业务逻辑类

public IActivityBiz getActivityBiz() {
return activityBiz;
}

public void setActivityBiz(IActivityBiz activityBiz) {
this.activityBiz = activityBiz;
}

@Override
public String execute() throws Exception {

if(this.activityBiz == null) {
System.out.println("null");
}
return null;
}

这是applicationContext.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" xmlns:p="http://www.springframework.org/schema/p"
xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!-- DataSource -->
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="com.mysql.jdbc.Driver">
</property>
<property name="jdbcUrl"
value="jdbc:mysql://localhost:3306/d1word_db?characterEncoding=UTF-8">
</property>
<property name="user" value="root"></property>
<property name="password" value="mysql"></property>
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="100" />
<property name="maxIdleTime" value="1800" />
<property name="acquireIncrement" value="3" />
<property name="maxStatements" value="1000" />
<property name="initialPoolSize" value="10" />
<property name="idleConnectionTestPeriod" value="60" />
<property name="acquireRetryAttempts" value="30" />
<property name="breakAfterAcquireFailure" value="true" />
<property name="testConnectionOnCheckout" value="false" />
</bean>
<!-- sessionFactory -->
<bean id="sessionFactory"
class="org.springframework.orm.hibernate3.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="mappingResources">
<list>
<value>com/d1word/wms/entity/Activity.hbm.xml</value>
<value>com/d1word/wms/entity/Administrator.hbm.xml</value>
<value>com/d1word/wms/entity/ApplyDetail.hbm.xml</value>
<value>com/d1word/wms/entity/BackModule.hbm.xml</value>
<value>com/d1word/wms/entity/ErrorRecord.hbm.xml</value>
<value>com/d1word/wms/entity/FrontModule.hbm.xml</value>
<value>com/d1word/wms/entity/PrepaidCard.hbm.xml</value>
<value>com/d1word/wms/entity/PurchaseRecord.hbm.xml</value>
<value>com/d1word/wms/entity/StudySchedule.hbm.xml</value>
<value>com/d1word/wms/entity/User.hbm.xml</value>
<value>com/d1word/wms/entity/Word.hbm.xml</value>
<value>com/d1word/wms/entity/WordLibrary.hbm.xml</value>
</list>
</property>
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">
org.hibernate.dialect.MySQLDialect
</prop>
</props>
</property>
</bean>
<!-- DAO CONFIG START -->
<bean id="ALL_DAO" class="com.d1word.wms.dao.impl.ALL_DAO">
<property name="activityDAO" ref="ActivityDAO"></property>
<property name="administratorDAO" ref="AdministratorDAO"></property>
<property name="applyDetailDAO" ref="ApplyDetailDAO"></property>
<property name="backModuleDAO" ref="BackModuleDAO"></property>
<property name="errorRecordDAO" ref="ErrorRecordDAO"></property>
<property name="frontModuleDAO" ref="FrontModuleDAO"></property>
<property name="prepaidCardDAO" ref="PrepaidCardDAO"></property>
<property name="purchaseRecordDAO" ref="PurchaseRecordDAO"></property>
<property name="studyScheduleDAO" ref="StudyScheduleDAO"></property>
<property name="userDAO" ref="UserDAO"></property>
<property name="wordDAO" ref="WordDAO"></property>
<property name="wordLibraryDAO" ref="WordLibaryDAO"></property>
</bean>
<bean id="BaseDAO" class="com.d1word.wms.dao.impl.BaseDAO">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<bean id="ActivityDAO" class="com.d1word.wms.dao.impl.ActivityDAO"
parent="BaseDAO"></bean>
<bean id="AdministratorDAO" class="com.d1word.wms.dao.impl.AdministratorDAO"
parent="BaseDAO"></bean>
<bean id="ApplyDetailDAO" class="com.d1word.wms.dao.impl.ApplyDetailDAO"
parent="BaseDAO"></bean>
<bean id="BackModuleDAO" class="com.d1word.wms.dao.impl.BackModuleDAO"
parent="BaseDAO"></bean>
<bean id="ErrorRecordDAO" class="com.d1word.wms.dao.impl.ErrorRecordDAO"
parent="BaseDAO"></bean>
<bean id="FrontModuleDAO" class="com.d1word.wms.dao.impl.FrontModuleDAO"
parent="BaseDAO"></bean>
<bean id="PrepaidCardDAO" class="com.d1word.wms.dao.impl.PrepaidCardDAO"
parent="BaseDAO"></bean>
<bean id="PurchaseRecordDAO" class="com.d1word.wms.dao.impl.PurchaseRecordDAO"
parent="BaseDAO"></bean>
<bean id="StudyScheduleDAO" class="com.d1word.wms.dao.impl.StudyScheduleDAO"
parent="BaseDAO"></bean>
<bean id="UserDAO" class="com.d1word.wms.dao.impl.UserDAO" parent="BaseDAO"></bean>
<bean id="WordDAO" class="com.d1word.wms.dao.impl.WordDAO" parent="BaseDAO"></bean>
<bean id="WordLibaryDAO" class="com.d1word.wms.dao.impl.WordLibraryDAO"
parent="BaseDAO"></bean>
<!-- DAO CONFIG END -->
<!-- BIZ CONFIG START -->
<bean id="BaseBiz" class="com.d1word.wms.biz.impl.BaseBiz">
<property name="all_DAO" ref="ALL_DAO"></property>
</bean>
<bean id="ActivityBiz" class="com.d1word.wms.biz.impl.ActivityBiz"
parent="BaseBiz"></bean>
<bean id="AdministratorBiz" class="com.d1word.wms.biz.impl.AdministratorBiz"
parent="BaseBiz"></bean>
<bean id="ApplyDetailBiz" class="com.d1word.wms.biz.impl.ApplyDetailBiz"
parent="BaseBiz"></bean>
<bean id="BackModuleBiz" class="com.d1word.wms.biz.impl.BackModuleBiz"
parent="BaseBiz"></bean>
<bean id="ErrorRecordBiz" class="com.d1word.wms.biz.impl.ErrorRecordBiz"
parent="BaseBiz"></bean>
<bean id="FrontModuleBiz" class="com.d1word.wms.biz.impl.FrontModuleBiz"
parent="BaseBiz"></bean>
<bean id="PrepaidCardBiz" class="com.d1word.wms.biz.impl.PrepaidCardBiz"
parent="BaseBiz"></bean>
<bean id="PurchaseRecordBiz" class="com.d1word.wms.biz.impl.PurchaseRecordBiz"
parent="BaseBiz"></bean>
<bean id="StudyScheduleBiz" class="com.d1word.wms.biz.impl.StudyScheduleBiz"
parent="BaseBiz"></bean>
<bean id="UserBiz" class="com.d1word.wms.biz.impl.UserBiz" parent="BaseBiz"></bean>
<bean id="WordBiz" class="com.d1word.wms.biz.impl.WordBiz" parent="BaseBiz"></bean>
<bean id="WordLibraryBiz" class="com.d1word.wms.biz.impl.WordLibraryBiz"
parent="BaseBiz"></bean>
<!-- BIZ CONFIG END -->
<!-- ACTION CONFIG START -->
<bean id="ActivityUpdateAction" class="com.d1word.wms.action.activity.UpdateAction">
<property name="activityBiz" ref="ActivityBiz"></property>
</bean>

<!-- ACTION CONFIG END -->
<!-- TransactionManager CONFIG -->
<bean id="tm"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
<!-- AOP CONFIG -->
<aop:config>
<aop:pointcut id="biz"
expression="execution(* com.d1word.wms.biz.impl.*.*(..))" />
<aop:advisor advice-ref="txAdvice" pointcut-ref="biz" />
</aop:config>
<!-- Advice CONFIG -->
<tx:advice id="txAdvice" transaction-manager="tm">
<tx:attributes>
<tx:method name="*" propagation="REQUIRED" />
</tx:attributes>
</tx:advice>
</beans>

这是struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<constant name="struts.objectFactory" value="spring"></constant>
<package name="activityAction" extends="struts-default" namespace="/activity">
<action name="selectAll" class="ActivitySelectAllAction"></action>
<action name="update" class="ActivityUpdateAction"></action>
</package>
</struts>
...全文
180 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
墨梓霖 2011-06-22
  • 打赏
  • 举报
回复
我的BaseAction也出现的同样的问题,其他的类没有问题,,,求解啊。。。。。注入的时候成功了,调用 的时候,,,发现service为空。。。。。。高手们,,,,,,给力啊。。。。。。。。
JAVAJKjiankeJK 2011-06-22
  • 打赏
  • 举报
回复
能把你的IActivityBiz 实现类提出来吗
墨梓霖 2011-06-22
  • 打赏
  • 举报
回复
我的问题解决了,,楼主,,,,我的是因为,我调用的那个Action没有给它指定他的父类 BaseAction 所以spring会把它的父类重新实例化,而不是用的注入的那个,所以会取不到值。。。。。。。不知道楼主的是什么情况。。。。。

23,407

社区成员

发帖
与我相关
我的任务
社区描述
Java 非技术区
社区管理员
  • 非技术区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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