используя $ {resource} в отдельном потоке? - PullRequest
0 голосов
/ 09 августа 2011

Я хочу выполнить простую задачу! но не знаю, возможно это или нет!

У меня есть класс Groovy, который реализует Runnable, и он работает с использованием ThreadPool! в моем классе Runnable я хочу сделать следующее:

    public void run() {
          EventPhoto.withTransaction { status ->

                EventPhoto photo = new EventPhoto(event:eventInstance)

                photo.imageUrl = "${resource(dir:'images/uploads',file:image.name, absolute:true)}"
                photo.thumbnailUrl = "${resource(dir:'images/uploads',file:thumb.name, absolute:true)}"
          }
    }

Дело в том, что мой поток не работает внутри веб-запроса. Я получаю следующую ошибку:

java.lang.IllegalStateException: не привязан к потоку запрос: вы ссылаетесь на атрибуты запроса вне фактического веб-запроса, или обрабатываете запрос вне изначально полученного потока? Если вы фактически работаете в веб-запросе и по-прежнему получаете это сообщение, ваш код, вероятно, работает за пределами DispatcherServlet / DispatcherPortlet: в этом случае используйте RequestContextListener или RequestContextFilter, чтобы выставить текущий запрос.

Так есть ли еще возможность использовать $ resource () ??

спасибо

Ответы [ 2 ]

1 голос
/ 09 августа 2011

Вот некоторая информация , которая покажет вам, как выполнить то, что вы пытаетесь сделать. Также обратите внимание, что это говорит о том, что вы делаете плохой дизайн.

0 голосов
/ 09 августа 2011

Ваш фоновый поток по умолчанию не имеет доступа к сеансу Hibernate, используемому для сохранения вашей фотографии.Вы можете использовать плагин, такой как Executor , чтобы сохранять доменные объекты в фоновом потоке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...