2009-09-16 162 views
1

我遇到了一些hibernate代码的问题。我调用saveOrUpdate()方法,每次尝试执行更新时,都会收到NullPointerException。第一次运行,第二次运行,第三次运行。这在更新上发生。我不刷新页面,重新发布服务器,什么都不是。这是我的代码。 session.getTransaction()。commit();抛出异常。线。Hibernate saveOrUpdate()每次更新时抛出nullPointerException

Session session = getSession(); 
session.beginTransaction(); 
session.saveOrUpdate(com); 
session.getTransaction().commit(); 

我曾尝试在提交后执行session.flush()和session.close(),但它没有帮助。

任何帮助将非常感激。

这里是堆栈跟踪....

[16/09/09 12:14:06:817 BST] 00000027 ServletWrappe E SRVE0068E: Uncaught exception thrown in one of the service methods of the servlet: JetspeedContainer. Exception thrown : java.lang.NullPointerException 
at oracle.jdbc.dbaccess.DBData.clearItem(DBData.java:431) 
at oracle.jdbc.dbaccess.DBDataSetImpl.clearItem(DBDataSetImpl.java:3528) 
at oracle.jdbc.driver.OraclePreparedStatement.clearParameters(OraclePreparedStatement.java:3401) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.resetStatement(WSJdbcConnection.java:2369) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:2020) 
at com.ibm.ws.rsadapter.jdbc.WSJdbcConnection.prepareStatement(WSJdbcConnection.java:1972) 
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:497) 
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:94) 
at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87) 
at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218) 
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2289) 
at org.hibernate.persister.entity.AbstractEntityPersister.updateOrInsert(AbstractEntityPersister.java:2242) 
at org.hibernate.persister.entity.AbstractEntityPersister.update(AbstractEntityPersister.java:2542) 
at org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:92) 
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248) 
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232) 
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:140) 
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:297) 
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27) 
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000) 
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338) 
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106) 
at com.fmr.fc.portlet.communications.dao.impl.HibernateCommunicationsDAOImpl.createCommunication(HibernateCommunicationsDAOImpl.java:128) 
at com.fmr.fc.portlet.communications.CommunicationsAdminPortlet.processAction(CommunicationsAdminPortlet.java:168) 
at org.apache.jetspeed.factory.JetspeedPortletInstance.processAction(JetspeedPortletInstance.java:97) 
at org.apache.jetspeed.container.JetspeedContainerServlet.doGet(JetspeedContainerServlet.java:258) 
at org.apache.jetspeed.container.JetspeedContainerServlet.doPost(JetspeedContainerServlet.java:396) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:501) 
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464) 
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.include(WebAppRequestDispatcher.java:639) 
at org.apache.jetspeed.container.invoker.ServletPortletInvoker.invoke(ServletPortletInvoker.java:273) 
at org.apache.jetspeed.container.invoker.ServletPortletInvoker.action(ServletPortletInvoker.java:148) 
at org.apache.pluto.PortletContainerImpl.processPortletAction(PortletContainerImpl.java:164) 
at org.apache.jetspeed.container.JetspeedPortletContainerWrapper.processPortletAction(JetspeedPortletContainerWrapper.java:133) 
at org.apache.jetspeed.pipeline.valve.impl.ActionValveImpl.invoke(ActionValveImpl.java:148) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.container.ContainerValve.invoke(ContainerValve.java:109) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at com.fmr.fcpf.util.PageHistoryValve.invoke(PageHistoryValve.java:161) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.profiler.impl.ProfilerValveImpl.invoke(ProfilerValveImpl.java:248) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.security.impl.LoginValidationValveImpl.invoke(LoginValidationValveImpl.java:159) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.localization.impl.LocalizationValveImpl.invoke(LocalizationValveImpl.java:170) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.security.impl.AbstractSecurityValve$1.run(AbstractSecurityValve.java:138) 
at java.security.AccessController.doPrivileged(AccessController.java:215) 
at javax.security.auth.Subject.doAsPrivileged(Subject.java:645) 
at org.apache.jetspeed.security.JSSubject.doAsPrivileged(JSSubject.java:179) 
at org.apache.jetspeed.security.impl.AbstractSecurityValve.invoke(AbstractSecurityValve.java:132) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.container.url.impl.PortalURLValveImpl.invoke(PortalURLValveImpl.java:67) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.capabilities.impl.CapabilityValveImpl.invoke(CapabilityValveImpl.java:126) 
at org.apache.jetspeed.pipeline.JetspeedPipeline$Invocation.invokeNext(JetspeedPipeline.java:167) 
at org.apache.jetspeed.pipeline.JetspeedPipeline.invoke(JetspeedPipeline.java:146) 
at org.apache.jetspeed.engine.JetspeedEngine.service(JetspeedEngine.java:222) 
at org.apache.jetspeed.engine.JetspeedServlet.doGet(JetspeedServlet.java:242) 
at org.apache.jetspeed.engine.JetspeedServlet.doPost(JetspeedServlet.java:269) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:763) 
at javax.servlet.http.HttpServlet.service(HttpServlet.java:856) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:989) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:930) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:145) 
at com.fmr.fc.common.authentication.ERLoginFilter.doFilter(ERLoginFilter.java:216) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130) 
at com.fmr.fc.common.authentication.FCLoginFilter.doFilter(FCLoginFilter.java:279) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130) 
at com.fmr.fc.common.authentication.CommonPortalFilter.doFilter(CommonPortalFilter.java:262) 
at com.ibm.ws.webcontainer.filter.FilterInstanceWrapper.doFilter(FilterInstanceWrapper.java:190) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain.doFilter(WebAppFilterChain.java:130) 
at com.ibm.ws.webcontainer.filter.WebAppFilterChain._doFilter(WebAppFilterChain.java:87) 
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:761) 
at com.ibm.ws.webcontainer.filter.WebAppFilterManager.doFilter(WebAppFilterManager.java:673) 
at com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:498) 
at com.ibm.ws.wswebcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:464) 
at com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:90) 
at com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:744) 
at com.ibm.ws.wswebcontainer.WebContainer.handleRequest(WebContainer.java:1439) 
at com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:112) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:454) 
at com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:383) 
at com.ibm.ws.http.channel.inbound.impl.HttpICLReadCallback.complete(HttpICLReadCallback.java:102) 
at com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 
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:136) 
at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:195) 
at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:743) 
at com.ibm.io.async.ResultHandler$2.run(ResultHandler.java:873) 
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:1469) 

回答

1

什么Oracle JDBC驱动程序的版本是您使用?

这是Oracle 9的ojdbc14.jar中的一个已知问题。为您的平台下载最新的JDBC驱动程序,它应该消失。

+0

感谢您的回复,当我早些时候使用了错误代码时,我看到了这个问题,但我使用的是Oracle 10,Oracle JDBC驱动程序版本 - “10.2.0.2.0”。 当我执行delete(),save(),update(),saveOrUpdate()以及是否通过手动获取会话并开始事务或使用hibernateTemplate时,会发生此问题。 – Caroline 2009-09-16 15:32:33

+0

你确定这是你正在使用的版本吗?通过堆栈跟踪来判断,您正在运行WebSphere;它可以将自己的驱动程序拷贝放在某个地方。无论如何,最新的Oracle 10版本是10.2.0.4,并且修复了相当多的错误:http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/htdocs/readme_jdbc_10204.html考虑升级到它并看看它是否有帮助 – ChssPly76 2009-09-16 15:39:06

+0

在进一步调查和完整搜索我的机器后,C:\ IBM \ SDP70 \ runtimes \ base_v61 \ lib中有9.0.2版本,但这不是我在java中的版本在RAD中构建轻拍。当我将版本10.0.2复制到lib时,我的服务器在发布项目时抛出回滚异常.... – Caroline 2009-09-17 10:02:45

相关问题