cxf-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Willem Jiang <willem.ji...@gmail.com>
Subject Re: How to avoid createFault cxf behaviour when i handle exception
Date Mon, 20 Oct 2008 03:58:16 GMT
Did you use 'try ... catch(Exception ex)' to catch the exception?
After went through your stack trace , I found that the exception was
thrown from the your application method code.

Willem

anatolyg wrote:
> I am writing webserivce using cxf jboss and spring.
> The question is what can I do in the case when business logic for example
> transaction throws exception...
> This exception is handle by my method (try ... catch) but still I get
> following:
> 
> org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Application has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: JTA transaction unexpectedly rolled back
> (maybe due to a timeout); nested exception is
> javax.transaction.RollbackException:
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
> commit because the transaction is in aborted state
> 
> 
> 
> I would like to avoid this createFault procedure and instead to return error
> code to the client in my result object.
> 
> 
> 
> Full exception looks like that.
> 
> 
> 15:04:00,718 WARN  [SupportPackageDao] Uh oh, 'class
> com.company.stargate.model.offering.SupportPackage' object with id '1011'
> not found...
> 15:04:00,734 ERROR [STDERR] Oct 19, 2008 3:04:00 PM
> org.apache.cxf.phase.PhaseInterceptorChain doIntercept
> INFO: Application has thrown exception, unwinding now
> org.apache.cxf.interceptor.Fault: JTA transaction unexpectedly rolled back
> (maybe due to a timeout); nested exception is
> javax.transaction.RollbackException:
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
> commit because the transaction is in aborted state
> 	at
> org.apache.cxf.service.invoker.AbstractInvoker.createFault(AbstractInvoker.java:119)
> 	at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.createFault(JAXWSMethodInvoker.java:73)
> 	at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:107)
> 	at
> org.apache.cxf.jaxws.JAXWSMethodInvoker.invoke(JAXWSMethodInvoker.java:97)
> 	at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:68)
> 	at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor$1.run(ServiceInvokerInterceptor.java:56)
> 	at
> org.apache.cxf.workqueue.SynchronousExecutor.execute(SynchronousExecutor.java:37)
> 	at
> org.apache.cxf.interceptor.ServiceInvokerInterceptor.handleMessage(ServiceInvokerInterceptor.java:92)
> 	at
> org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(PhaseInterceptorChain.java:221)
> 	at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(ChainInitiationObserver.java:78)
> 	at
> org.apache.cxf.transport.servlet.ServletDestination.invoke(ServletDestination.java:92)
> 	at
> org.apache.cxf.transport.servlet.ServletController.invokeDestination(ServletController.java:279)
> 	at
> org.apache.cxf.transport.servlet.ServletController.invoke(ServletController.java:161)
> 	at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.invoke(AbstractCXFServlet.java:174)
> 	at
> org.apache.cxf.transport.servlet.AbstractCXFServlet.doPost(AbstractCXFServlet.java:152)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:710)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:803)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265)
> 	at
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107)
> 	at
> org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:110)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:229)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> com.supportspace.stargate.webapp.filter.LoginTrackingFilter.doFilter(LoginTrackingFilter.java:43)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:106)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:286)
> 	at
> org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275)
> 	at
> org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149)
> 	at
> org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at
> com.supportspace.stargate.webapp.filter.DisableUrlSessionFilter.doFilter(DisableUrlSessionFilter.java:54)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at
> org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
> 	at
> org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at
> org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
> 	at
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
> 	at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
> 	at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175)
> 	at
> org.jboss.web.tomcat.security.SecurityAssociationValve.invoke(SecurityAssociationValve.java:179)
> 	at
> org.jboss.web.tomcat.security.JaccContextValve.invoke(JaccContextValve.java:84)
> 	at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
> 	at
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104)
> 	at
> org.jboss.web.tomcat.service.jca.CachedConnectionValve.invoke(CachedConnectionValve.java:157)
> 	at
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
> 	at
> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:241)
> 	at
> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
> 	at
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:580)
> 	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
> 	at java.lang.Thread.run(Thread.java:595)
> Caused by: org.springframework.transaction.UnexpectedRollbackException: JTA
> transaction unexpectedly rolled back (maybe due to a timeout); nested
> exception is javax.transaction.RollbackException:
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
> commit because the transaction is in aborted state
> 	at
> org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1031)
> 	at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.processCommit(AbstractPlatformTransactionManager.java:709)
> 	at
> org.springframework.transaction.support.AbstractPlatformTransactionManager.commit(AbstractPlatformTransactionManager.java:678)
> 	at
> org.springframework.transaction.interceptor.TransactionAspectSupport.commitTransactionAfterReturning(TransactionAspectSupport.java:321)
> 	at
> org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:116)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	at
> org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:89)
> 	at
> org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
> 	at
> org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2A
> 15:04:00,734 ERROR [STDERR] opProxy.java:635)
> 	at
> com.supportspace.stargate.service.impl.SupportPackagePurchaseManagerImpl$$EnhancerByCGLIB$$e168d8a5.purchaseSupportPackage(<generated>)
> 	at
> com.supportspace.stargate.service.impl.SupportPackageWebServiceImpl.purchaseService(SupportPackageWebServiceImpl.java:37)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
> 	at java.lang.reflect.Method.invoke(Method.java:585)
> 	at
> org.apache.cxf.service.invoker.AbstractInvoker.performInvocation(AbstractInvoker.java:136)
> 	at
> org.apache.cxf.service.invoker.AbstractInvoker.invoke(AbstractInvoker.java:82)
> 	... 63 more
> Caused by: javax.transaction.RollbackException:
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
> commit because the transaction is in aborted state
> 	at
> com.arjuna.ats.internal.jta.transaction.arjunacore.TransactionImple.commitAndDisassociate(TransactionImple.java:1394)
> 	at
> com.arjuna.ats.internal.jta.transaction.arjunacore.BaseTransaction.commit(BaseTransaction.java:135)
> 	at
> com.arjuna.ats.jbossatx.BaseTransactionManagerDelegate.commit(BaseTransactionManagerDelegate.java:87)
> 	at
> org.jboss.tm.usertx.client.ServerVMClientUserTransaction.commit(ServerVMClientUserTransaction.java:140)
> 	at
> org.springframework.transaction.jta.JtaTransactionManager.doCommit(JtaTransactionManager.java:1028)
> 	... 79 more
> 15:04:00,781 ERROR [STDERR] Oct 19, 2008 3:04:00 PM
> org.apache.cxf.interceptor.LoggingOutInterceptor$LoggingCallback onClose
> INFO: Outbound Message
> ---------------------------
> Encoding: UTF-8
> Headers: {}
> Messages: 
> Payload: <soap:Envelope
> xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"><soap:Body><soap:Fault><faultcode>soap:Server</faultcode><faultstring>JTA
> transaction unexpectedly rolled back (maybe due to a timeout); nested
> exception is javax.transaction.RollbackException:
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted]
> [com.arjuna.ats.internal.jta.transaction.arjunacore.commitwhenaborted] Can't
> commit because the transaction is in aborted
> state</faultstring></soap:Fault></soap:Body></soap:Envelope>
> --------------------------------------
> 


Mime
View raw message