GWT - HTTPServlet POST请求未调用

时间:2016-03-14 16:29:05

标签: java http servlets gwt

我希望还有一些GWT开发人员......我是GWT开发的新手,我正在尝试做一个基于表单的文件上传系统。 为此,我实现了一个HTTPServlet并覆盖了methode doPost。 但是,当我提交表单时,我收到的回复200没有任何内容。但是如果你看下面我的文件,我发送500响应......并且没有调用System.out.println ......

我在网上经历了很多已经问过的问题,但无法找到解决方案......

POST method not called on servlet - GWT project

servlet not working in GWT

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。

2 个答案:

答案 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提供的帮助!