SSH整合问题 定义两个action后无法实现注入

问题描述

我用SSH做了个java web项目,hibernate我是用注解的方式,spring我用xml来配置,首先我定义了一个user Model,以及它对应的userDao,userDaoImpl,userService,userServiceImpl,发现可以正确运行,然后我定义了和user完全一样的people Model,代码如下people:@Entitypublic class people {private int id;private String username;private String password; 省略set get方法}peopleDaoImple:public class peopleImpl implements peopleDao {private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}public boolean save(people u) {hibernateTemplate.save(u);return true;}}peopleImpl:public class peopleImpl implements peopleService {private peopleDao peopledao;public peopleDao getPeopledao() {return peopledao;}public void setPeopledao(peopleDao peopledao) {this.peopledao = peopledao;}public boolean save(people u) {peopledao.save(u);return true;}}对应的applicationContext的配置如下:<bean id="sessionFactory" class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean" > <property name="dataSource" ref="dataSource"></property> <property name="hibernateProperties"> <props> <prop key="hibernate.dialect"> org.hibernate.dialect.SQLServerDialect </prop> <prop key="hibernate.hbm2ddl.auto">update</prop> <prop key="hibernate.show_sql">true</prop> </props> </property> <property name="annotatedClasses"> <list> <value>com.model.User</value> <value>com.model.people</value> </list> </property></bean><bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate" <property name="sessionFactory" ref="sessionFactory"></property></bean>peopleDaoImpl的配置如下: <bean id="peopledao" class="com.Dao.Impl.peopleImpl" > <property name="hibernateTemplate" ref="hibernateTemplate"></property></bean>peopleImpl配置如下:<bean id="peopleService" class="com.ServiceDao.Impl.peopleImpl" > <property name="peopledao" ref="peopledao"></property></bean>我觉得奇怪的是 我单单配置一个user时程序没问题,而多加了一个people以后则没办法用spring来为people注入,运行时tomcat服务器没有问题,但浏览器上出现错误500 然后报java.lang.NullPointerExceptioncom.ServiceDao.Impl.peopleImpl.save(peopleImpl.java:21)com.Actions.peopleAction.Register(peopleAction.java:44)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)com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:440)com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:279)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:242)com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:163)com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:249)org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:122)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:195)com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:148)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:93)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:235)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:89)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:128)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:104)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:126)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:138)com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:87)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:148)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:128)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77)org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:76) 问题补充:lizhi92574 写道

解决方案

应该是peopleImpl peopledao属性没有注入成功是null。你执行peopledao.save(u); 出现的错误。
解决方案二:
你打断点查看 peopleImpl peopledao属性就知道是否有值了。
解决方案三:
应该是你注入的问题,看下你注入的包路径,类名什么的写对了没有
解决方案四:
引用public boolean save(people u) { hibernateTemplate.save(u); return true; } 1.0 people u 没传值2.0 也有可能 hibernateTemplate 没拿进来!
解决方案五:
看错误信息,应该是保存时,people对象应该没有初始化,为null,看看调用save方法的action,people是怎么来进行实例化的。
解决方案六:
这个不是注入报的错,是你调用了save()方法,传的参数为空对象,所以报空指针异常。

时间: 2024-04-17 12:02:37

SSH整合问题 定义两个action后无法实现注入的相关文章

android开发-SSH整合问题Unable to instantiate Action

问题描述 SSH整合问题Unable to instantiate Action 问题:Unable to instantiate Action, userAction, defined for 'user-userLogin' in namespace ''userAction 不知道哪里问题,网上的方法试了好多遍,都没解决,客户端只能停留在登录界面,无法登录成功,无法访问服务器,求大神指教 Struts.xml <?xml version="1.0" encoding=&qu

ssh整合-S2SH集成中使用AOP后查询结果为NULL?。。请教高手解答一下

问题描述 S2SH集成中使用AOP后查询结果为NULL?..请教高手解答一下 做SSH集成,用得是spring的声明式事务和hibernate做的集成. 以下是spring配置文件中关于AOP的配置: <!-- 配置aop拦截声明类 --> <bean id = "myAop" class="com.acc.aop.MyAop"></bean> <aop:config> <aop:pointcut express

注入失败-SSH 整合 当Action切面引入事务管理后,属性无法注入,求大神帮忙看一下

问题描述 SSH 整合 当Action切面引入事务管理后,属性无法注入,求大神帮忙看一下 没加入事务切面前,Action中的注入costDao可以注入,可是applicationContext.xml加入了一下配置后 <bean id="txManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager"> <property name="ses

配置-求助,SSH整合后拦截器不起作用

问题描述 求助,SSH整合后拦截器不起作用 struts.xml配置如下 <interceptors> <interceptor name="loginInterceptor" class="com.music.interceptor.LoginInterceptor"></interceptor> <interceptor-stack name="globalInterceptor"> <i

SSH整合(二)——利用Spring来装配Action类

        在上篇文章(SSH整合(一)--直接获取ApplicationContext)中,在Action类中通过获取ApplicationContext对象,调用getBean方法来实例化bean类,这种方法将Action类与Spring的绑定装配JavaBean绑定的过紧,大大增加了他们的耦合度.如果装配文件的内容有变化,很可能要修改Action类的代码.      所以我们将装配Action类及其属性的方法也放到Spring中. 一,由Spring创建Action对象       例

jsp标签-SSH整合后,在JSP页面的图片不能显示

问题描述 SSH整合后,在JSP页面的图片不能显示 SSH整合后,在JSP页面的图片不能显示,图片的路径使用绝对的路径,没有错,我将JSP放到一个单独的WEB项目下可以显示出来,放在整合的项目下就显示不出来,大神们这是为什么呀,完全不知道原因呀, 解决方案 静态资源是不是被拦截了? 解决方案二: 楼上说的对,有可能被拦截了. 你可以debug一下或者 抓包看看

求解在SSH中,打开页面时引用action,并读取在调用action后session中数据

问题描述 求解在SSH中,打开页面时引用action,并读取在调用action后session中数据 解决方案 解决方案二:Mapmap=(Map)ActionContext.getContext().get(ActionContext.SESSION);Objectobj=map.get("sessionKey");解决方案三:引用楼主a76607401的回复: 求解在SSH中,打开页面时引用action,并读取在调用action后session中数据 我就是想知道咋个在页面中引用s

ssh整合后hibernate有关联关系在启动时候慢

问题描述 ssh整合后,在实体上建立一对多或者多对对关系后,启动日志在划正方框的地方会卡住,下面的地方出来的很慢数据库是oracle,请教大神什么原因,在线等~ssh版本:spring3hibernate4struts2 解决方案 解决方案二:映射文件有问题...解决方案三:是不是有地方在启动的时候预加载一些数据呢解决方案四:这个问题不大吧..前台访问不满就ok..解决方案五:这个是开放了hbm2ddl造成的,,因为它比较每一个字段.......取消hibernate.hbm2ddl.auto配

ssh整合-JAVA SSH Struts 关于a标签调用Action含参数就异常反之正常

问题描述 JAVA SSH Struts 关于a标签调用Action含参数就异常反之正常 struts 异常 Action path SSH 异常信息 There is no Action mapped for namespace [/dd] and action name [laladList] associated with context path [/baee]. - [unknown location] at com.opensymphony.xwork2.DefaultActionP