2016-05-17 8 views
0

Ich muss Infinispan als Cache-Provider für mein Spring-Projekt konfigurieren. Es ist, weil seine Transaktion funktioniert. Das Problem besteht darin, dass Spring den PlatformTransactionManager verwendet und Infinispan javax.transaction.TransactionManager benötigt. Kann Infinispan TransactionManagerLookup mit dem von Spring bereitgestellten PlatformTransactionManager konfiguriert werden?Infinispan-Transaktion - TransactionManager kann nicht von Spring4 abgerufen werden

Ich verwende JpaTransactionManager als TransactionManager. Version von Infinispan ist 7.2.3.Final, Spring4.

Antwort

2

Infinispan TransactionManagerLookup gibt eine JTA TransactionManager-Implementierung zurück. Sie verwenden jedoch eine PlatformTransactionManager, die nichts mit JTA zu tun hat.

So gibt es mindestens zwei Möglichkeiten, mit diesen umzugehen:

  • Sie können entwickeln und Adapter zwischen PlatformTransactionManager und JTA Transaction und per TransactionManagerLookup.
  • Ein viel besserer Ansatz ist, Spring zu konfigurieren, um JTA mit Ihren Entitäten zu verwenden (Sie werden wahrscheinlich viele Beispiele im Internet finden, aber der entscheidende Punkt ist, dass Sie einige JTA-Implementierungen wie Narayana benötigen). Dann sollte Infinispan den JTA Transaction Manager automatisch finden (oder Sie können ihn manuell mit TransactionManagerLookup angeben).
0

Es sieht so aus, als ob JpaTransactionManager nur ein Ziel binden kann und ich brauche JtaTransactionManager. Hoffentlich ist es möglich, es unter Spring PlatformTransactionManager zu binden.

Verwandte Themen