У меня есть приложение Spring. По некоторым причинам у меня есть стандартный сервлет, и мне нужен этот сервлет, чтобы иметь доступ к некоторым весенним бобам (я знаю, что это не идеально, и я буду искать что-то лучшее в будущем).Нет WebApplicationContext найден: не в запросе диспетчераServlet
в web.xml
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
<async-supported>true</async-supported>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<servlet>
<description>Tunnel servlet.</description>
<servlet-name>Tunnel</servlet-name>
<servlet-class>
com.something.GuacamoleController
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Tunnel</servlet-name>
<url-pattern>/path</url-pattern>
</servlet-mapping>
и GuacamoleController
public class GuacamoleController extends GuacamoleHTTPTunnelServlet {
@Override
protected GuacamoleTunnel doConnect(HttpServletRequest request)
throws GuacamoleException {
WebApplicationContext webApplicationContext = RequestContextUtils.getWebApplicationContext(request);
[...]
}
}
Но он бросает эту ошибку:
java.lang.IllegalStateException: No WebApplicationContext found: not in a DispatcherServlet request?
Как я могу сделать этот случай запрос DispatcherServlet?
мне нужен контекст веб-приложения, так что я могу вручную получить доступ к экземпляру службы с getBean методом
Если вы работаете с Spring MVC, почему вы создаете свои собственные сервлеты? –
Ситуация требует этого. Лучше всего было бы преобразовать этот сервлет (http://guac-dev.org/doc/gug/writing-you-own-guacamole-app.html#idm139993934478752) в контроллер Spring. Это тоже решило бы проблему. – Tk421
* Ситуация требует так *. Ну, это ваша точная проблема, и это то, что вы должны спросить. –