I have a bridge which creates JTA transaction if REST-AT transaction context is available during REST request. Therefore, JAX-RS resources can use @TransactionAttribute annotations. Example of such resource is here: http://tinyurl.com/pf6c7hu.

If REST-AT transaction does not exist during the request to transactionAttributeMandatory() - EJBTransactionRequiredException is thrown.

If REST-AT transaction does exist during the request to transactionAttributeNever() - EJBException with the follwing message is thrown: "JBAS014163: Transaction present on server in Never call (EJB3 13.6.2.6)".

To handle those exceptions I have an ExceptionMapper which returns appropriate HTTP responses: http://tinyurl.com/q4v54ph. In the mapper I can easily look for EJBTransactionRequiredException. But in case of EJBException I am looking for JBAS014163 code. I wanted to ask if it is safe to rely on looking for error code? Or maybe there is a better option?

Thanks,
Gytis

On 26/07/13 14:08, Scott Marlow wrote:
Can you give more context here, the full exception call stack would be helpful (please post a pastebin.com link or something like that).

On 07/26/2013 06:10 AM, Gytis Trikleris wrote:
Hello,

I need to handle exception when either
TransactionAttributeType.MANDATORY or TransactionAttributeType.NEVER
requirement is not met. It is not a problem for MANDATORY, because
EJBTransactionRequiredException is thrown. However, general EJBException
exception is thrown if unexpected transaction was on the thread.

I wanted to ask what is the best way to detect that EJBException was
caused because of unnecessary transaction? Error code given by the
exception is JBAS014163, but I am not sure if it is safe to rely on
message codes...

Thanks,
Gytis
_______________________________________________
wildfly-dev mailing list
wildfly-dev@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/wildfly-dev