портлет Grails FlashScope - PullRequest
       7

портлет Grails FlashScope

2 голосов
/ 14 августа 2010

Я использую def liferay_portlet_private_session_attributes = false в портлете Grails для LifeRay. Это я использовал для обмена значениями сеанса с другим портлетом.

session.getAttribute("orgid", PortletSession.APPLICATION_SCOPE) 

Я получал эту ошибку при сборке, каждый раз, когда обновлялся URL

Caused by: java.lang.ClassCastException: org.codehaus.groovy.grails.web.servlet.GrailsFlashScope cannot be cast to org.codehaus.groovy.grails.web.servlet.FlashScope

Если я выйду из системы и войду, она будет работать хорошо. Но я не могу понять, как это исправить, сохранив те же настройки.

Может ли кто-нибудь сказать мне, есть ли какое-нибудь исправление?

1 Ответ

1 голос
/ 17 августа 2010

Как обсуждалось по электронной почте, я думаю, что это проблема ClassLoader.Объект типа GrailsFlashScope (загруженный в один портлет) пытается быть приведен к FlashScope (загружен во второй портлет).

Несмотря на то, что GrailsFlashScope реализует FlashScope, класс FlashScope, загруженный из двух разных загрузчиков классов, не рассматриваетсяравны и будут выбрасывать CCE.

Единственный способ исправить это - переместить файлы grails - *. jar (например, grails-web.jar) в какую-то общую папку jar (не знаю гдев Liferay) и удалите их из файлов WAR портлета.

cheers

Lee

...