【发布时间】:2014-09-22 22:46:47
【问题描述】:
我是一名 Java 开发人员。我在本地版本的 websphere 应用程序服务器中部署了一个 Web 服务,我知道它可以在我的生产服务器上运行。
但是当我尝试使用 SOAP UI 在本地执行 Web 服务时,我得到...
错误 500:LocalTransaction 由于 setRollbackOnly 而回滚。
<?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)
我的本地版本的网络服务器和生产版本都指向同一个数据库。肥皂 ui 请求适用于我的 Web 服务的生产版本。
这让我觉得我定义数据源的方式有问题。有人可以帮我解决这个问题吗?
谢谢
【问题讨论】:
-
ORA-06550 表示 PL/SQL 错误;除此之外,日志中还有其他更具体的 Oracle 消息吗?从其他地方连接到您的生产数据库似乎很奇怪。您是以相同的用户身份连接并执行相同的 PL/SQL,还是您的本地版本正在运行并调用不同的代码?
-
您需要将您的 Oracle 驱动程序更新到最新版本。我发现了一个类似的帖子:stackoverflow.com/questions/3163636/…
标签: java oracle soap websphere