2014-08-28 4 views
0

У меня есть эта строка в конструкторе моего RemoteServiceServletRemoteServiceServlet возвращается нуль с getThreadLocalRequest()

userID = getThreadLocalRequest().getRemoteUser(); 

, но его метания NullPointerException, потому что getThreadLocalRequest возвращает нуль.

Насколько я понимаю, RemoteServiceServlet наследуется от HttpServlet и, следовательно, должен иметь объект HttpReuest уже! Должен ли я установить что-либо перед вызовом getThreadLocalRequest() в случае GWT?

+0

Я использую 'getThreadLocalRequest()' без проблем. Проблема в другом месте. –

+0

У меня сложилось впечатление, что именно эта проблема стоит не только мне. Быстрый поиск в Google вызывает несколько сообщений с той же проблемой - https://www.google.com/search?q=gwt+getthreadlocalrequest+returns+null, однако ни у одного из них не было четкого решения – Raj

+0

Что я имею в виду, это то, что проблема не в том коде, который вы поделили. Вам нужно разделить больше кода, если, конечно, предложение Дэвида уже не решило вашу проблему. –

ответ

2

Проблема может заключаться в том, что вы пытаетесь использовать этот метод внутри конструктора сервлета. Для каждого запроса не создается новый экземпляр сервлета. Экземпляры сервлета повторно используются во всех запросах. Вместо этого попробуйте вызвать getThreadLocalRequest() внутри метода службы.

Смежные вопросы