我是一名java开发人员。我在我的本地版本的websphere应用服务器中部署了一个Web服务,我知道它可以在我的生产服务器上运行。
但是当我尝试使用SOAP UI在我的本地执行Web服务时,我得到了......
错误500:由于setRollbackOnly而回滚LocalTransaction。
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>soapenv:Server.userException</faultcode><faultstring>com.myer.item.service.ItemSearchException: A database error has occurred. SQL error code: 6550</faultstring><detail><ns1:fault xmlns:ns1="http://service.item.myer.com"/><ns2:hostname xmlns:ns2="http://xml.apache.org/axis/">mvni1120</ns2:hostname></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>Error 500: LocalTransaction rolled-back due to setRollbackOnly
然后进一步查看日志......
[31/07/14 15:11:13:204 EST] 296ae24c InternalGener I DSRA8205I: JDBC driver name : Oracle JDBC driver
[31/07/14 15:11:13:204 EST] 296ae24c InternalGener I DSRA8206I: JDBC driver version : 9.2.0.3.0
[31/07/14 15:11:13:470 EST] 296ae24c LocalTranCoor E WLTC0033E: Resource jdbc/rmsDS rolled back in cleanup of unresolved LocalTransactionContainment.
[31/07/14 15:11:13:501 EST] 296ae24c LocalTranCoor E WLTC0032E: One or more resources rolled back. An unresolved LocalTransactionContainment had an unresolved action of rollback.
[31/07/14 15:11:13:501 EST] 296ae24c WebAppTransac E WTRN0043I: LocalTransaction rolled-back due to setRollbackOnly.
[31/07/14 15:11:13:517 EST] 296ae24c WebGroup E SRVE0026E: [Servlet Error]-[LocalTransaction rolled-back due to setRollbackOnly]: com.ibm.ws.LocalTransaction.RolledbackException
at com.ibm.ws.LocalTransaction.LocalTranCoordImpl.cleanup(LocalTranCoordImpl.java:1091)
at com.ibm.ws.webcontainer.webapp.WebAppTransactionCollaborator.postInvoke(WebAppTransactionCollaborator.java:249)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.dispatch(WebAppRequestDispatcher.java:695)
at com.ibm.ws.webcontainer.webapp.WebAppRequestDispatcher.forward(WebAppRequestDispatcher.java:208)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.doForward(WebAppInvoker.java:134)
at com.ibm.ws.webcontainer.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.java:321)
at com.ibm.ws.webcontainer.cache.invocation.CachedInvocation.handleInvocation(CachedInvocation.java:71)
at com.ibm.ws.webcontainer.srp.ServletRequestProcessor.dispatchByURI(ServletRequestProcessor.java:246)
at com.ibm.ws.webcontainer.oselistener.OSEListenerDispatcher.service(OSEListener.java:334)
at com.ibm.ws.webcontainer.http.HttpConnection.handleRequest(HttpConnection.java:56)
at com.ibm.ws.http.HttpConnection.readAndHandleRequest(HttpConnection.java:652)
at com.ibm.ws.http.HttpConnection.run(HttpConnection.java:448)
at com.ibm.ws.util.ThreadPool$Worker.run(ThreadPool.java:937)
我的本地版本的Web服务器和生产版本都指向同一个数据库。 soap ui请求适用于我的Web服务的生产版本。
这让我觉得我定义数据源的方式存在问题。有人可以帮帮我吗?
感谢
答案 0 :(得分:1)
您可能需要将Oracle驱动程序更新到最新版本。 您的Oracle JDBC驱动程序版本中存在一个错误,已在Oracle 9.0.2.6驱动程序版本中修复。
您可以阅读更多内容:IBM Support Page