2009-05-20 11 views
0

Ich habe eine Schaltfläche in einer .xhtml-Datei, die eine JavaScript-Funktion aufruft, die eine Java-Funktion remote aufruft (in jboss Nahtumgebung). Diese Java-Funktion hat einen entityManager.persist (Objekt). Weißt du, warum diese Codezeile nicht für die DB gilt? Es sagt etwas, dass eine Transaktion nicht gestartet wurde. Ich suppose in einem Fernkontext ich habe keine Transaktion begonnen, weil, wenn ich eine Handlung auf dem Knopf setze, der die gleiche Java-Funktion aufruft, anstatt das Verwenden von Javascript oben ist, funktioniert es gut; Der entityManager behält das Objekt und ich kann es in der DB sehen.Remote Seam Persistence

Hat jemand irgendwelche Ideen, wie könnte ich machen, um tatsächlich das Objekt mit JavaScript zu halten, um die Java-Funktion aufzurufen? (Ich habe Javascript zu verwenden, weil ich die Callback-Funktion benötigen)

+0

Können Sie uns die relevanten Teile Ihrer Code posten? Es ist ein bisschen schwer zu diagnostizieren basierend auf Ihrem Text allein. –

Antwort

0

Um eine Transaktion zu gewährleisten Sie org.jboss.seam.util.Work verlängern könnte:

new Work() 
{ 
    @Override 
    protected Object work() throws Exception { 
     // do your stuff 
     return null; 
    } 
}.workInTransaction()