我用hibernate的方法this.getHibernateTemplate().findByExample(o)去数据库取之,当我用java工程测试的时候这个方法可以正确的返回值,但当我从web的jsp页面去测试它的时候他出现了异常但是还是去执行了sql语句。
UserDaoImpl中方法:
public Nyuser getUser(Nyuser u) {
System.out.println("3..."+u.getUsername());
List list = bdao.getObjectEntity(u);
System.out.println("4...");
Nyuser user = null;
for(int i =0 ;i<list.size(); i++){
user = (Nyuser)list.get(0);
}
return user;
}
异常:
BaseDaoImpl中的方法:
public List getObjectEntity(Object o) {

return this.getHibernateTemplate().findByExample(o);
}
3...dw
Hibernate: 
    select
        this_.userID as userID3_0_,
        this_.userTypeID as userTypeID3_0_,
        this_.username as username3_0_,
        this_.password as password3_0_,
        this_.nichen as nichen3_0_,
        this_.tel as tel3_0_,
        this_.email as email3_0_,
        this_.userType as userType3_0_,
        this_.status as status3_0_ 
    from
        nanyueDB.dbo.nyuser this_ 
    where
        (
            this_.username=? 
            and this_.password=?
        )
2010-3-18 6:47:19 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet action threw exception
java.lang.NullPointerException
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862)
at org.hibernate.impl.SessionImpl.internalLoad(SessionImpl.java:830)
at org.hibernate.type.EntityType.resolveIdentifier(EntityType.java:266)
at org.hibernate.type.EntityType.resolve(EntityType.java:303)
at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:116)
at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:842)
at org.hibernate.loader.Loader.doQuery(Loader.java:717)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2029)
at org.hibernate.loader.Loader.list(Loader.java:2024)
at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1533)
at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
at org.springframework.orm.hibernate3.HibernateTemplate$36.doInHibernate(HibernateTemplate.java:1008)
at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:372)
at org.springframework.orm.hibernate3.HibernateTemplate.findByExample(HibernateTemplate.java:997)
at org.springframework.orm.hibernate3.HibernateTemplate.findByExample(HibernateTemplate.java:990)
at linkey.dw.dao.impl.BaseDaoImpl.getObjectEntity(BaseDaoImpl.java:105)
at linkey.dw.dao.impl.UserDaoImpl.getUser(UserDaoImpl.java:23)
at linkey.dw.biz.impl.UserBizImpl.getUser(UserBizImpl.java:22)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:304)
at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
at $Proxy1.getUser(Unknown Source)
at linkey.dw.web.action.LoginAction.login(LoginAction.java:46)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.springframework.web.struts.DelegatingActionProxy.execute(DelegatingActionProxy.java:110)
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:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
at java.lang.Thread.run(Unknown Source)

解决方案 »

  1.   

    2楼注入什么session。我的user中有值
      

  2.   

    一头雾水 看着头疼
    at linkey.dw.dao.impl.BaseDaoImpl.getObjectEntity(BaseDaoImpl.java:105)
    at linkey.dw.dao.impl.UserDaoImpl.getUser(UserDaoImpl.java:23)
    我只知道是这个105抛出了异常!
      

  3.   

    5楼也就是上面BaseDaoImpl.java里的方法
    public List getObjectEntity(Object o) {return this.getHibernateTemplate().findByExample(o);
    }
    抛出的异常
      

  4.   

    你debug运行  然后一步一步找 看看你哪一行代码造成了空指针  然后再去解决
      

  5.   

    7楼我不是说了吗就是
    this.getHibernateTemplate().findByExample(o);
    条语句出现了空指针异常。而我用java工程运行的时候是可以正确运行的。就是在web工程下不知道怎么出了问题了
      

  6.   

    this.getHibernateTemplate()  这个是空的...