Die Java EE-Spezifikation gibt an, dass CMT-Beans (Container-managed Transactions, containerverwaltete Transaktionen) nicht auf das Objekt UserTransaction zugreifen dürfen. WebLogic unterstützt jedoch das Lookup von UserTransaction.
Diese Regel markiert den folgenden Typ von Code:
Lookup des WebLogic-Objekts UserTransaction
< span class="Code"> < span class= "JavaType">UserTransaction< /span> xact = ctx.lookup("weblogic.transaction.UserTransaction");
Der Zugriff auf UserTransaction ist in der Bean an der markierten Stelle nicht zulässig. Ihre Lösung richtet sich danach, was der Code mit dem Objekt UserTransaction zu tun versucht. Überprüfen Sie die Verwendung von UserTransaction, um festzustellen, wie der Code geändert werden muss bzw. ob die Referenz entfernt werden kann.
Zu den Alternativen für die Verwendung von UserTransaction gehört die Verwendung von UOWManager. Die Suchoperation für diesen Manager verwendet ebenfalls ein JNDI-Lookup, z. B.:
UOWManager-LookupEin weiterer Ansatz ist die Verwendung der Schnittstelle SessionSynchronization, die Ihnen den Zugriff auf die Methoden "afterBegin", "beforeCompletion" und "afterCompletion" ermöglicht. Mit der Methode "beforeCompletion" können Sie die vorherige Version der Transaktion wiederherstellen, falls ein Fehler auftritt.