2016-08-15 1 views
1

내가 JPA는 그 DB2 테이블에서 데이터를 검색 할 수있는 최대 절전 모드 사용하여 응용 프로그램을 작성하는 것을 시도하고 가입 할 수 없습니다 : "표"em.createNativeQuery()는 null 포인터 예외를 반환하고 CMTTransaction

내 쿼리됩니다 :

Query query = emdb2.createNativeQuery("select product_name from TEST.Table1 with UR"); 

내의 persistence.xml은 다음과 같습니다

<persistence-unit name="HibernatePersistenceDB2" transaction-type="JTA"> 
<provider>org.hibernate.ejb.HibernatePersistence</provider> 
<jta-data-source>jdbc/pr-data/db2</jta-data-source> 
<class>com.test.entity.Table1</class> 
<properties> 
    <property name="hibernate.dialect" value="org.hibernate.dialect.DB2Dialect"></property> 
    <property name="hibernate.transaction.factory_class" value="org.hibernate.transaction.CMTTransactionFactory"></property> 
    <property name="hibernate.current_session_context_class" value="jta" ></property> 
    <property name="hibernate.transaction.flush_before_completion" value="true"></property> 
    <property name="hibernate.max_fetch_depth" value="3" /> 
    <property name="hibernate.show_sql" value="true" /> 
    <property name='hibernate.format_sql' value='true' /> 
</properties> 

는 어떤 이유로, 나는 결과를 검색하는 쿼리를 얻을 수 없습니다. emdb2가 null이 아니며 쿼리 문에서 다음을 throw합니다.

[8/15/16 11:30:37:861 EDT] 00000076 SystemErr  R java.lang.NullPointerException 
[8/15/16 11:30:37:862 EDT] 00000076 SystemErr  R  at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.getStatus(JtaStatusHelper.java:73) 
[8/15/16 11:30:37:862 EDT] 00000076 SystemErr  R  at org.hibernate.engine.transaction.internal.jta.JtaStatusHelper.isActive(JtaStatusHelper.java:115) 
[8/15/16 11:30:37:862 EDT] 00000076 SystemErr  R  at org.hibernate.engine.transaction.internal.jta.CMTTransaction.join(CMTTransaction.java:149) 
[8/15/16 11:30:37:862 EDT] 00000076 SystemErr  R  at org.hibernate.ejb.AbstractEntityManagerImpl.joinTransaction(AbstractEntityManagerImpl.java:1230) 
[8/15/16 11:30:37:862 EDT] 00000076 SystemErr  R  at org.hibernate.ejb.AbstractEntityManagerImpl.postInit(AbstractEntityManagerImpl.java:178) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at org.hibernate.ejb.EntityManagerImpl.<init>(EntityManagerImpl.java:89) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at org.hibernate.ejb.EntityManagerFactoryImpl.createEntityManager(EntityManagerFactoryImpl.java:179) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.ibm.ws.jpa.management.JPAEMPool.getEntityManager(JPAEMPool.java:170) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(JPATxEntityManager.java:259) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.ibm.ws.jpa.management.JPATxEntityManager.getEMInvocationInfo(JPATxEntityManager.java:191) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.ibm.ws.jpa.management.JPAEntityManager.createNativeQuery(JPAEntityManager.java:325) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.test.dataaccess.main.TestDaoImpl.testDEBIT_CARD_PMTSCHD(TestDaoImpl.java:33) 
[8/15/16 11:30:37:863 EDT] 00000076 SystemErr  R  at com.test.dataaccess.main.TestDaoImpl.testDAOMain(TestDaoImpl.java:57) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at com.test.dataaccess.main.EJSLocal0SLTestDao_178af4ed.testDAOMain(EJSLocal0SLTestDao_178af4ed.java) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at com.test.business.main.TestBoImpl.testBoMain(TestBoImpl.java:33) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at com.test.business.main.EJSLocal0SLTestBo_e36555f9.testBoMain(EJSLocal0SLTestBo_e36555f9.java) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at com.test.service.main.TestServiceImpl.testServiceMain(TestServiceImpl.java:39) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:60) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at java.lang.reflect.Method.invoke(Method.java:611) 
[8/15/16 11:30:37:864 EDT] 00000076 SystemErr  R  at org.apache.axis2.jaxws.server.dispatcher.JavaDispatcher.invokeTargetOperation(JavaDispatcher.java:120) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invokeTargetOperation(EJBBeanDispatcher.java:192) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at org.apache.axis2.jaxws.server.dispatcher.JavaBeanDispatcher.invoke(JavaBeanDispatcher.java:118) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at com.ibm.ws.websvcs.server.dispatcher.EJBBeanDispatcher.invoke(EJBBeanDispatcher.java:80) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at org.apache.axis2.jaxws.server.EndpointController.invoke(EndpointController.java:111) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at org.apache.axis2.jaxws.server.JAXWSMessageReceiver.receive(JAXWSMessageReceiver.java:161) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:212) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at org.apache.axis2.transport.http.HTTPTransportUtils.processHTTPPostRequest(HTTPTransportUtils.java:172) 
[8/15/16 11:30:37:865 EDT] 00000076 SystemErr  R  at com.ibm.ws.websvcs.transport.http.WASAxis2Servlet.doPost(WASAxis2Servlet.java:1606) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:595) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at javax.servlet.http.HttpServlet.service(HttpServlet.java:668) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1230) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:779) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:478) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:178) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.filter.WebAppFilterManager.invokeFilters(WebAppFilterManager.java:1114) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:87) 
[8/15/16 11:30:37:866 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:919) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1662) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:200) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:463) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewRequest(HttpInboundLink.java:530) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.processRequest(HttpInboundLink.java:316) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:287) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 
[8/15/16 11:30:37:867 EDT] 00000076 SystemErr  R  at com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:175) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:204) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:775) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:905) 
[8/15/16 11:30:37:868 EDT] 00000076 SystemErr  R  at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1881) 

답변

0

문제점을 파악했습니다. 그것은 jdbc 제공자 구성과 함께했습니다. DB2 Universal JDBC Driver Provider에 대해 db2jcc 드라이브 jar를 사용하고있었습니다. "IBM jcc 드라이버를 사용하여 db2"를 선택한 후 제대로 작동했습니다.

관련 문제