我在Grails 2.3.7上創建了一個簡單的應用程序,可以顯示我的問題。單身代理服務器中的Grails會話範圍服務在控制器中變爲空
我在整個應用程序中創建了一個控制器和一個服務。這裏是我的TestController.groovy:
package testsession
class TestController {
def testingsessionServiceProxy
def index() {
println testingsessionServiceProxy.getSomeVariable()
}
}
我TestingsessionService.groovy:
package testsession
import grails.transaction.Transactional
@Transactional
class TestingsessionService {
static scope="session"
static proxy=true
def somevariable=false
def getSomeVariable() {
somevariable
}
}
運行此應用程序,我在TestController.groovy爲testingsessionServiceProxy得到空。請參閱下面的跟蹤:
....Error
|
2015-04-02 18:09:28,122 [http-bio-8080-exec-7] ERROR errors.GrailsExceptionResolver - NullPointerException occurred when processing request: [GET] /TestSession/test/index
Cannot invoke method getSomeVariable() on null object. Stacktrace follows:
Message: Cannot invoke method getSomeVariable() on null object
Line | Method
->> 6 | index in testsession.TestController
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
| 200 | doFilter in grails.plugin.cache.web.filter.PageFragmentCachingFilter
| 63 | doFilter in grails.plugin.cache.web.filter.AbstractFilter
| 1145 | runWorker in java.util.concurrent.ThreadPoolExecutor
| 615 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^ 745 | run in java.lang.Thread
我看過那篇文章。它非常容易混淆說Grails 1.3默認會這樣做。也許grails 2.3默認不會添加這個代理屬性。它只有在你添加插件後纔會出現。順便說一句我已經使用了插件,但沒有用:( – rahulserver 2015-04-02 13:58:05