spring的orm ps 显示是nullsetfilepointerr 为什么啊,难道我自己实例化吗?求解

J2EE &&&&最新内容
J2EE &&&&随机内容查看: 7643|回复: 6
spring好像无法注入报java.lang.NullPointerException
论坛徽章:4
这是打出来的格式
java.lang.NullPointerException
& & & & at com.sdf.struts.action.UserAction.addUser(UserAction.java:63)
& & & & at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
& & & & at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
& & & & at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
& & & & at java.lang.reflect.Method.invoke(Method.java:585)
& & & & at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
& & & & at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
& & & & at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
& & & & at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
& & & & at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
& & & & at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
& & & & at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
& & & & at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
& & & & at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:269)
& & & & at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
& & & & at com.sdf.filter.EncodingFilter.doFilter(EncodingFilter.java:29)
& & & & at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:215)
& & & & at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:188)
& & & & at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:213)
& & & & at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:174)
& & & & at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
& & & & at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
& & & & at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:108)
& & & & at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:151)
& & & & at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:874)
& & & & at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConnection(Http11BaseProtocol.java:665)
& & & & at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:528)
& & & & at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorkerThread.java:81)
& & & & at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:689)
& & & & at java.lang.Thread.run(Thread.java:595)
以下 是些配置:
strut-config.xml
&action-mappings &
& & &action
& && &attribute=&userForm&
& && &input=&/jsp/errors.jsp&
& && &name=&userForm&
& && &parameter=&method&
& && &path=&/user&
& && &scope=&request&
& && &type=&com.sdf.struts.action.UserAction& &
& && &&forward name=&adduserfailure& path=&/jsp/adduser.jsp&&&/forward&
& && &&forward name=&adduseraccess& path=&/jsp/index.jsp&&&/forward&
& && &&/action&
&&&/action-mappings&
&&&!-- 好像控制器一定要放在message-resource上边哦 --&
&&&controller& & & &
& & & & & & & & processorClass=&org.springframework.web.struts.DelegatingRequestProcessor&&
& & & & &/controller&
&&&message-resources parameter=&com.sdf.struts.ApplicationResources& /&
&&&plug-in className=&org.springframework.web.struts.ContextLoaderPlugIn&&
& & &set-property&&property=&contextConfigLocation&
& & value=&/WEB-INF/applicationContext.xml& /&
&&&/plug-in&
applicationConfig.xml
&bean id=&hibernateTemplate&
& & & & & & & & class=&org.springframework.orm.hibernate3.HibernateTemplate&&
& & & & & & & & &property name=&sessionFactory&&
& & & & & & & & &ref bean=&sessionFactory&/&
& & & & & & & & &/property&
& & & & &/bean&
& & & & &bean id=&iuserdao& class=&com.sdf.hibernate.dao.IUserDao& abstract=&true&&
& & & & &/bean&
& & & & &bean id=&iuserdaoimpl& class=&com.sdf.hibernate.impl.IUserDaoImpl& parent=&iuserdao&&
& & & & & & & & &property name=&hibernateTemplate&&
& & & & & & & & &ref bean=&hibernateTemplate&/&
& & & & & & & & &/property&
& & & & &/bean&
& & & & &bean name=&user& class=&com.sdf.struts.action.UserAction&&
& & & & & & & & &property name=&iuserdao&&
& & & & & & & & &ref bean=&iuserdaoimpl&/&
& & & & & & & & &/property&
& & & & &/bean&
userAction.java
public ActionForward addUser(ActionMapping mapping, ActionForm form,
& & & & & & & & & & & & HttpServletRequest request, HttpServletResponse response) {
& & & & & & & & UserForm userForm = (UserForm)// TODO Auto-generated method stub
& & & & & & & & User user=new User();
& & & & & & & & user.setName(userForm.getName());
& & & & & & & & user.setUserid(userForm.getUserid());
& & & & & & & & user.setUserpwd(userForm.getUserpwd());
& & & & & & & & user.setMemnum(Integer.parseInt(userForm.getMemnum()));
& & & & & & & & user.setRoomnum(Integer.parseInt(userForm.getRoomnum()));
& & & & & & & & user.setGrade(Integer.parseInt(userForm.getGrade()));
& & & & & & & & user.setPhone(userForm.getPhone());
& & & & & & & & user.setCreatetime(new Date());
& & & & & & & & try {
& & & & & & & & & & & & iuserdao.addUser(user);
& & & & & & & & & & & & request.getSession().setAttribute(&userid&, user.getUserid());
& & & & & & & & & & & & request.getSession().setAttribute(&grade&, user.getGrade());
& & & & & & & & & & & & request.getSession().setAttribute(&name&, user.getName());
& & & & & & & & & & & & return mapping.findForward(&adduseraccess&);
& & & & & & & & } catch (Exception e) {
& & & & & & & & & & & & // TODO Auto-generated catch block ctrl+1
& & & & & & & & & & & & e.printStackTrace();
& & & & & & & & & & & & return mapping.findForward(&adduserfailure&);
& & & & & & & & }
大家帮我看看,我整了好久了,没结果,累死了。
论坛徽章:129
论坛徽章:129
估计是数据库没连上
论坛徽章:4
谢谢哦,我检查下。
论坛徽章:129
多打印店信息
论坛徽章:4
靠 ,测试了半天终天搞定了,可以睡个好觉了,嗨都是源于自己对ssh配置文件不熟导致的,晕死!
第一个错误:
applicationContext.xml文件中的
&bean name=&user& class=&com.sdf.struts.action.UserAction&&
& && && && && & &property name=&iuserdao&&
& && && && && & &ref bean=&iuserdaoimpl&/&
& && && && && & &/property&
& && &&&&/bean&
&bean name=&/user& class=&com.sdf.struts.action.UserAction&&
& && && && && & &property name=&iuserdao&&
& && && && && & &ref bean=&iuserdaoimpl&/&
& && && && && & &/property&
& && &&&&/bean&
要与strut-config.xml文中配置的一样,晕倒,这我找了好久才想起来。
这是strut-config.xml的配置:
& && &attribute=&userForm&
& && &input=&/jsp/errors.jsp&
& && &name=&userForm&
& && &parameter=&method&
& && &path=&/user&
& && &。。。。。这是这个path的值要与applicationContext.xml文件中一致。
第二个错误:
IUserDaoImpl.java改为:
public class IUserDaoImpl extends HibernateDaoSupport implements IUserDao {
& & & & public void addUser(User user) throws Exception {
& & & & & & & & super.getHibernateTemplate().save(user);//原来是super。getSeession().save(user),总保存不成功。
谢谢楼上的呀,辛苦了。
论坛徽章:129
程序员不容易啊
itpub.net All Right Reserved. 北京皓辰网域网络信息技术有限公司版权所有    
 北京市公安局海淀分局网监中心备案编号: 广播电视节目制作经营许可证:编号(京)字第1149号如何避免及解决万恶的java.lang.NullPointerException错误
Posted on , 20:31, by , under
&&&& 作为一个java 程序员,特别是刚入门或初学者,遇到的最多的异常我想当属& java.lang.NullPointerException,当然这是一个不可避免的。不管你是多老的程序员,写的程序也不能保证不出现这个异常。但不可杜绝,并不代表不可避免,不可减少其出现的概率。下面就探讨下如何尽量避免其出现,首先看常见的出现该异常的原因。
&&&& 常见原因至少有以下几类:
对java 对象不熟悉,特别体现在初学者及刚入门身上。如:类的成员还是对象的时候,初学者往往不知道如何初始化成员对象,结果导致对象为初始化就调用。
数据是从外部获取,如数据库,取出数据后不检查就直接调用,常发生在用hibernate 等orm 工具取完数据后数据展示部分。
java代码编写习惯。编写类方法不对方法参数进行检查就使用。
引入外部包,而没有引入外部包依赖包
粗心。这是最大的原因,特别是对于有一定编程经验的人来说
解决方法:
&&& 第一类属于java 基础不牢,建议多做练习,熟悉java 对象生命周期的相关知识。如java 对象内存分配,,java 初始化过程等。
在外部读入数据的话,建议在读入数据后就检查其是否为null 。当然有时候也跟需求来定,但使用前必须做好检查工作。
跟编程经验有相当关系。公用的方法,一般使用前检查参数,该抛出异常的抛出异常,该用默认值的用默认值处理。一些私有方法,人们因为觉得只有自己使用,自己控制不传人null 值就可以,懒得去检查空异常。确实我自己也常这样干,但发现自己写的,但自己却总保证不了,不传入空。所以建议使用前检查,但可以不抛出异常,可使用断言,自己用默认值处理掉。
引入外部包出现NullPointerException,随着各种框架的发展而越来越常见。主要是人们盲目引用各种包,而不去详细评估引用包的效果,及不去了解所引入包的依赖包。现在有maven 工具,如果使用它构建工程的话,依赖报错可能就会少点了。
粗心。这个就没办法了,相信没几个人改得了。且因为粗心而出现的bug,自己往往很难找出原因,这时可以借下团队的力量,让同事帮你去找,可能很快就找到了
如何找NullPointerException 出错代码:
&&&& NullPointerException 异常很找出出错位置还是比较容易的,java 的异常链机制可以让你很快找到错误代码所在。这里提醒一点千万不要使用
}catch(Exception){}
因为这样出错了控制台不报,log 不记,找死你。

我要回帖

更多关于 setfilepointer 的文章

 

随机推荐