我希望还有一些GWT开发人员......我是GWT开发的新手,我正在尝试做一个基于表单的文件上传系统。 为此,我实现了一个HTTPServlet并覆盖了methode doPost。 但是,当我提交表单时,我收到的回复200没有任何内容。但是如果你看下面我的文件,我发送500响应......并且没有调用System.out.println ......
我在网上经历了很多已经问过的问题,但无法找到解决方案......
POST method not called on servlet - GWT project
How exactly servlet Work in GWT?
以下是我的文件:
的web.xml
<servlet>
<servlet-name>fileupload</servlet-name>
<servlet-class>com.myCompany.FileUpload
</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>fileupload</servlet-name>
<url-pattern>/myModule/fileupload</url-pattern>
</servlet-mapping>
FormPresenter.java (我使用的是MVP架构)
formPanel.setAction(GWT.getModuleBaseURL() + "fileupload");
formPanel.setEncoding(FormPanel.ENCODING_MULTIPART);
formPanel.setMethod(FormPanel.METHOD_POST);
FileUpload.java (Servlet文件)
@RemoteServiceRelativePath("fileupload")
public class FileUpload extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("FileUpload doPost");
resp.sendError(500);
}
}
Form.ui.xml
<g:FormPanel ui:field="formPanel">
<g:VerticalPanel>
<g:FileUpload ui:field="fileUpload"></g:FileUpload>
</g:VerticalPanel>
</g:FormPanel>
感谢您的帮助!
Hyukchan。
答案 0 :(得分:0)
删除@RemoteServiceRelativePath("fileupload")
。您已经在web.xml中设置了映射。
答案 1 :(得分:0)
哦,我实际上在我的代码中发现了问题... 我有一个使用通用网址格式定义的过滤器
<强>的web.xml 强>
<filter-mapping>
<filter-name>myFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
在我的servlet之前调用,我忘了使用:
<强> MyFilter.java 强>
chain.doFilter(request, response);
调用其余的过滤器和servlet ......
感谢Andrei提供的帮助!