Устойчивость удаленного шва - PullRequest
0 голосов
/ 20 мая 2009

У меня есть кнопка в файле .xhtml, которая вызывает функцию javascript, которая вызывает функцию java удаленно (в среде шва jboss). Эта функция Java имеет entityManager.persist (объект). Знаете ли вы, почему эта строка кода не фиксируется в БД? Это говорит о том, что транзакция еще не началась. Я полагаю, что в удаленном контексте транзакция не началась, потому что если я наложил действие на эту кнопку, которая вызывает ту же функцию Java, а не с использованием javascript, то это работает нормально; entityManager сохраняет объект, и я могу видеть его в БД.

Кто-нибудь имеет какие-либо идеи, как я могу сделать, чтобы на самом деле сохранить объект, используя JavaScript для вызова функции Java? (Я должен использовать JavaScript, потому что мне нужна функция обратного вызова)

1 Ответ

0 голосов
/ 21 мая 2009

Для обеспечения транзакции вы можете расширить org.jboss.seam.util.Work:

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