Reading the third sentence of your email, you said the service is just *retrieving* data from the database (i.e. SQL SELECT), is that correct? If so, commits would not be a concern for you--you may be able to keep your service in application scope[1] and just initialize an instance variable to hold the session factory.
Otherwise, I don't know if you're using Spring but the Axis2 Spring guide[2] may give you some ideas until someone else can get you a better answer. [1] http://www.developer.com/java/web/article.php/10935_3620661_2 [2] http://ws.apache.org/axis2/1_2/spring.html Glen Am Donnerstag, den 03.05.2007, 16:26 -0400 schrieb [EMAIL PROTECTED]: > Hi, > > I'm new to Axis. I'm using Axis2 1.1.1. > > I'm creating a service that retrieves data from a database. I'm using > Hibernate. For those of you not familiar with it, the basic pattern of usage > is that you create something called a SessionFactory once when the > application starts, and then for each request/response cycle you create a > Session. When the response finishes, you commit the session. > > In regular web applications I create the session factory in the > ApplicationContext. Then I make a servlet filter that creates the session and > starts a transaction on the way in, and then commits the transaction and > closes the session on the way out. > > I'm trying to figure out how to do this in Axis. I created a module called > hibernateTransactionModule. I've got two handlers, one for the way in and one > for the way out, each attached to a new phase. Right now they're just saying > 'hello world' and it works, they do execute when I expect them to. > > So I've got three classes: > > HibernateTransactionModule implements org.apache.axis2.modules.Module > HibernateTransactionHandlerBegin extends AbstractHandler implements Handler > HibernateTransactionHandlerEnd extends AbstractHandler implements Handler > > My intuition tells me that HibernateTransactionModule.init() would be the > appropriate place to create the hibernate session factory, > HibernateTransactionHandlerBegin.invoke() could create a session for a > request and put it into the messageContext, and > HibernateTransactionHandlerEnd.invoke() could commit the transaction and > close the session. > > But I can't see a place where I can store the session factory where it can be > accessible to the handlers. > > One possibility would be to use a static field in > HibernateTransactionHandlerBegin but that would be an ugly hack. Any > suggestions? > > Thanks > Michael Davis > www.damaru.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [EMAIL PROTECTED] > For additional commands, e-mail: [EMAIL PROTECTED] > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
