Получить WebUtils.retrieveGrailsWebRequest () в Tomcat - PullRequest
0 голосов
/ 08 мая 2019

Я могу получить доступ к WebUtils.retrieveGrailsWebRequest() на локальном хосте (все работает нормально).Но если я пытаюсь развернуть файл .war на сервере Tomcat, я получаю следующую ошибку:

Caused by: java.lang.IllegalStateException: No thread-bound request found: Are you referring to request attributes outside of an actual web request, or processing a request outside of the originally receiving thread? If you are actually operating within a web request and still receive this message, your code is probably running outside of DispatcherServlet/DispatcherPortlet: In this case, use RequestContextListener or RequestContextFilter to expose the current request.
        at org.springframework.web.context.request.RequestContextHolder.currentRequestAttributes(RequestContextHolder.java:131)
        at org.grails.web.util.WebUtils.retrieveGrailsWebRequest(WebUtils.java:442)
        at org.grails.web.util.WebUtils$retrieveGrailsWebRequest.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:116)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:120)
        at pos.kasse.session.SessionService.getCurrentUser(SessionService.groovy:25)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:98)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:325)
        at org.codehaus.groovy.runtime.metaclass.MethodMetaProperty$GetBeanMethodMetaProperty.getProperty(MethodMetaProperty.java:76)
        at org.codehaus.groovy.runtime.callsite.GetEffectivePogoPropertySite.getProperty(GetEffectivePogoPropertySite.java:85)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callGetProperty(AbstractCallSite.java:299)

Ответы [ 2 ]

0 голосов
/ 09 мая 2019

Вы можете получить доступ к request и / или session без ссылки на каких-либо владельцев или ссылки WebUtils.

// grails-app/services/lastone/DemoService.groovy
package lastone

import grails.web.api.ServletAttributes

class DemoService implements ServletAttributes {

    def someMethod() {
        // From here you can access the
        // session and/or request properties
        // directly...
    }
}
0 голосов
/ 08 мая 2019

Проблема была в плагине springsecurity. Вы должны использовать запрос / сеанс оттуда как:

import grails.plugin.springsecurity.web.SecurityRequestHolder as SRH
SRH.request.session
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...