gpt4 book ai didi

grails - 具有Singleton代理的Grails session 作用域服务在 Controller 中为空

转载 作者:行者123 更新时间:2023-12-02 14:42:07 34 4
gpt4 key购买 nike

我在Grails 2.3.7上创建了一个简单的应用程序来显示我的问题。

我在整个应用程序中只创建了一个 Controller 和一项服务。这是我的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为null。请参阅下面的跟踪:
....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 3.1中实现。看看这张票:GRAILS-5701

但是您可以通过在resources.groovy中定义代理来手动创建代理,如下所示:

testingsessionServiceProxy(ScopedProxyFactoryBean) {
targetBeanName = 'TestingsessionService'
proxyTargetClass = true
}

看一下描述问题的 this article。还有一个 plugin提供此功能,但我尚未对其进行测试。

关于grails - 具有Singleton代理的Grails session 作用域服务在 Controller 中为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29413251/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com