package org.jboss.net.axis.server;
import org.jboss.axis.AxisFault;
import org.jboss.axis.MessageContext;
import javax.transaction.NotSupportedException;
import javax.transaction.Status;
import javax.transaction.SystemException;
public class TransactionRequestHandler extends TransactionResponseHandler
{
protected static final Object MARKER = new Object();
public TransactionRequestHandler() throws Exception
{
}
public void invoke(MessageContext msgContext) throws AxisFault
{
try
{
if (userTransaction.getStatus() == Status.STATUS_NO_TRANSACTION
&& msgContext.getProperty(Constants.TRANSACTION_PROPERTY) == null)
{
userTransaction.begin();
msgContext.setProperty(Constants.TRANSACTION_PROPERTY, MARKER);
}
}
catch (SystemException e)
{
throw new AxisFault("Could not analyze tx setting.", e);
}
catch (NotSupportedException e)
{
throw new AxisFault("Could not begin tx.", e);
}
}
}