Java 加载器-弹簧
在我的webapp中,我正在使用GWT,我想使用GwtUploader。问题是我不能@Autowire任何服务到我处理请求的类中。可能是因为它不是弹簧组件,但我不知道如何解决这个问题 这是我的配置: Servlet:Java 加载器-弹簧,java,spring,spring-mvc,gwt,gwtupload,Java,Spring,Spring Mvc,Gwt,Gwtupload,在我的webapp中,我正在使用GWT,我想使用GwtUploader。问题是我不能@Autowire任何服务到我处理请求的类中。可能是因为它不是弹簧组件,但我不知道如何解决这个问题 这是我的配置: Servlet: @Component("gwtUploadServlet") public class GwtUploadServlet extends UploadAction { private static final long serialVersionUID = 1L; @A
@Component("gwtUploadServlet")
public class GwtUploadServlet extends UploadAction {
private static final long serialVersionUID = 1L;
@Autowired
SomeService .....;
public String executeAction(HttpServletRequest request,
List<FileItem> sessionFiles) {
.....
}
}
@组件(“gwtUploadServlet”)
公共类GwtUploadServlet扩展了UploadAction{
私有静态最终长serialVersionUID=1L;
@自动连线
一些服务。。。。。;
公共字符串执行(HttpServletRequest,
列表(会话文件){
.....
}
}
web.xml:
<servlet>
<servlet-name>gwtUploadServlet</servlet-name>
<servlet-class>xxx.gwtUploader.GwtUploadServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>gwtUploadServlet</servlet-name>
<url-pattern>/bbsapp/fileUpload</url-pattern>
</servlet-mapping>
gwtUploadServlet
xxx.gwtUploader.GwtUploadServlet
gwtUploadServlet
/bbsapp/fileUpload
我在很多地方使用这些服务,它们工作得很好 我解决了添加以下内容时出现的问题:
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
// a workaround for forcing this servlet to autowire its components
WebApplicationContext webAppCtx = WebApplicationContextUtils
.getRequiredWebApplicationContext(getServletContext());
webAppCtx.getAutowireCapableBeanFactory().autowireBean(this);
}
现在,我对会话有问题。当我尝试使用服务时,我得到:
Error creating bean with name 'scopedTarget.userSessionService': Scope 'session'
is not active for the current thread; consider defining a scoped proxy for this
bean if you intend to refer to it from a singleton; nested exception is 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.