1 Reply Latest reply on Apr 27, 2010 1:22 PM by Gábor Farkas

    Transactions never committed when using web service integration!


      I hope I'm missing something somewhere, but what I've discovered is that when using the SOAP web service integration database changes are never persisted. It seems to come down to org.jboss.seam.webservice.SOAPRequestHandler never beginning, committing, or rolling back the transaction. It seems a little too big of an issue to have been accidentally left out, so I'm curious why it was and what's the recommended solution. I haven't found any mention of this in the documentation.

      I'm using Seam 2.2.0.GA and Java 6, along with Hibernate and Oracle 10g for the database layer.

        • 1. Re: Transactions never committed when using web service integration!
          Gábor Farkas Newbie

          I'm just facing the same problem. The SOAPRequestHandler seems to only init the contexts, but doesn't start any transactions. In case of JSF requests, its the SeamPhaseListener that handles transactions as well.
          In the seam reference it's advised to put the WS functionality in a Seam component, so that injections and other stuff work (the WS class is instantiated by the WS framework, so Seam cannot interfere, I guess).
          So if you have a Seam component that does the actual stuff (and the WS stuff just delegates), then you can annotate each method of that component as @Transactional(REQUIRED). Quite inconvenient I think.

          Maybe I'll subclass the soap request handler to add automatic transaction handling there, if i don't find a more neat solution.

          There were some hints there: http://seamframework.org/122845.lace and http://community.jboss.org/message/474742