2016-08-12 4 views
0

こんにちはすべて私はDBストアドプロシージャをgetNamedQueryステートメントから呼び出そうとしているが、Dbストアドプロシージャが正しく実行されていてref cursurを返すので、NPEが遭遇し、コードをデバッグできないことがあります。 リストにResultSetを変換しながら、それは確かNPEを生成しますが、いない)(ありNULLとしてResultSetを取得しているようだと:(?query.list()でHibernate NullPointerExceptionが発生しましたか?

ERROR com.uil.dat.dao.impl.WorkOrderDAOImpl: Exception occurred on calculatePriority DAO method 
    java.lang.NullPointerException 
      at org.hibernate.loader.custom.CustomLoader$Metadata.<init>(CustomLoader.java:552) 
      at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:525) 
      at org.hibernate.loader.Loader.getResultSet(Loader.java:1878) 
      at org.hibernate.loader.Loader.doQuery(Loader.java:718) 
      at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:270) 
      at org.hibernate.loader.Loader.doList(Loader.java:2449) 
      at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2192) 
      at org.hibernate.loader.Loader.list(Loader.java:2187) 
      at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316) 
      at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1832) 
      at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165) 
      at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:179) 
      at com.uil.dat.dao.impl.WorkOrderDAOImpl.calculatePriority(WorkOrderDAOImpl.java:60) 
      at com.uil.dat.manager.impl.DAOManagerImpl.calculatePriority(DAOManagerImpl.java:154) 
      at com.uil.dat.service.spt.impl.WorkOrderServiceImpl.calcPriority(WorkOrderServiceImpl.java:157) 
      at com.uil.dat.controller.spt.WorkOrderControllerBean.calcPriority(WorkOrderControllerBean.java:308) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
      at java.lang.reflect.Method.invoke(Method.java:611) 
      at org.apache.el.parser.AstValue.invoke(AstValue.java:268) 
      at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) 
      at org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83) 
      at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:88) 
      at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100) 
      at javax.faces.component.UICommand.broadcast(UICommand.java:120) 
      at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:995) 
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:278) 
      at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1307) 
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:733) 
      at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:34) 
      at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:172) 
      at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:119) 
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 
      at com.uil.dat.filter.RequestFilter.doFilter(RequestFilter.java:74) 
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:964) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1104) 
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:914) 
      at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) 
      at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) 
      at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1865) 
    [12/08/16 06:50:33:033 EDT] Thread:[WebContainer : 5] WARN org.hibernate.jdbc.AbstractBatcher: Could not close a JDBC result set 
    java.lang.NullPointerException 
      at org.hibernate.jdbc.AbstractBatcher.closeStatements(AbstractBatcher.java:338) 
      at org.hibernate.jdbc.ConnectionManager.cleanup(ConnectionManager.java:405) 
      at org.hibernate.jdbc.ConnectionManager.close(ConnectionManager.java:347) 
      at org.hibernate.impl.SessionImpl.close(SessionImpl.java:335) 
      at com.uil.dat.util.HibernateUtil.close(HibernateUtil.java:54) 
      at com.uil.dat.dao.impl.WorkOrderDAOImpl.calculatePriority(WorkOrderDAOImpl.java:94) 
      at com.uil.dat.manager.impl.DAOManagerImpl.calculatePriority(DAOManagerImpl.java:154) 
      at com.uil.dat.service.spt.impl.WorkOrderServiceImpl.calcPriority(WorkOrderServiceImpl.java:157) 
      at com.uil.dat.controller.spt.WorkOrderControllerBean.calcPriority(WorkOrderControllerBean.java:308) 
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
      at java.lang.reflect.Method.invoke(Method.java:611) 
      at org.apache.el.parser.AstValue.invoke(AstValue.java:268) 
      at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:278) 
      at org.apache.myfaces.view.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:83) 
      at javax.faces.component._MethodExpressionToMethodBinding.invoke(_MethodExpressionToMethodBinding.java:88) 
      at org.apache.myfaces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:100) 
      at javax.faces.component.UICommand.broadcast(UICommand.java:120) 
      at javax.faces.component.UIViewRoot._broadcastAll(UIViewRoot.java:995) 
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:278) 
      at javax.faces.component.UIViewRoot._process(UIViewRoot.java:1307) 
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:733) 
      at org.apache.myfaces.lifecycle.InvokeApplicationExecutor.execute(InvokeApplicationExecutor.java:34) 
      at org.apache.myfaces.lifecycle.LifecycleImpl.executePhase(LifecycleImpl.java:172) 
      at org.apache.myfaces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:119) 
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:189) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 
      at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.invokeTarget(WebAppFilterChain.java:136) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:97) 
      at com.uil.dat.filter.RequestFilter.doFilter(RequestFilter.java:74) 
      at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:195) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:91) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:964) 
      at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1104) 
      at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 
      at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:914) 
      at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
      at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) 
      at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) 
      at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:88) 
      at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
      at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
      at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
      at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
      at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
      at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
      at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
      at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1865) 
    [12/08/16 06:50:33:033 EDT] Thread:[WebContainer : 5] INFO com.uil.dat. 

現在、私は、JSFと一緒にhibernate3.jarをを使用しています。

以下のように呼び出すDBストアドプロシージャのための私のコード:

try { 
      session = HibernateUtil.buildIfNeeded().openSession(); 
      if(null!=session && session.isOpen()){ 
       HibernateUtil.beginTransaction(session); 
      } 
      logger.info(Constant.INITIATING_DB_CONNECTION);//building session from sessionFactory if not created 
      Query query = session.getNamedQuery("callCalculatePriorityProcedure"); 
      query.setResultTransformer(Transformers.aliasToBean(ProcedureReturn.class)); 
      if(null!= query){ 
       List<ProcedureReturn> calculatePriority = query.list(); 
       if(null!= calculatePriority && calculatePriority.size()>0){ 
        for(ProcedureReturn procedureReturn:calculatePriority){ 
         if(Integer.parseInt(procedureReturn.getRETURNINTEGER())==0){ 
          result = 0; 
          logger.info("procedure has bene executed successfully"); 
         } 
         else{ 
          result = 1; 
          logger.info("procedure wasn't executed successfully"); 
         } 
        } 
       }else{ 
        result = 2; 
       } 
      } 
+0

これは、ロードしようとするエンティティのクエリとマッピングによって異なる場合があります。ああ、あなたがいている間、使用しているHibernateの正確なバージョンを教えてくれますか? 'CustomLoader $ Metadata'の初期化ブロックには何かがありますので、そこに何があるかを見るためにソースを見てみることができます。ストアドプロシージャを呼び出すために使用 – Thomas

+0

@Thomasクエリは次のとおりです。 \t <![(?)CDATA [CALLのPKG_DA_OMS_SPT.CALC_PRIORITY]]> \t \t –

+0

Wouldn」クエリにパラメータを渡す必要がありますか?私はあなたがそれをするのを見ません。 – Thomas

答えて

0

今、私は、問題の根本的な原因を発見し、それは、Java休止側から解決することができ何もなかった私たちは、フェッチするためにDBリンクを使用していたよう。いくつかのグリッチDBのため、ビューからのデータリンクがレコードを取得できず、例外部分に移動して何も返さないことがあります。今度は、例外が発生しても何らかの値を返すようにDBプロシージャ自体でDB例外を処理する必要があったため、何らかの理由でDBリンクがダウンしたことが確認できました。 ところで、ありがとう@トーマス。

関連する問題