GWT - HTTPServlet POST 未调用请求

GWT - HTTPServlet POST Request not called

我希望还有一些 GWT 开发人员...我是 GWT 开发的新手,我正在尝试做一个基于表单的文件上传系统。 为此,我实现了一个 HTTPServlet 并覆盖了方法 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>

感谢您的帮助!

赫灿.

删除 @RemoteServiceRelativePath("fileupload")。您已经在 web.xml.

中设置了映射

哦,我实际上在我的代码中发现了问题...... 我有一个用一般 url 模式

定义的过滤器

web.xml

<filter-mapping>
    <filter-name>myFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

这是在我的 servlet 之前调用的,我忘了使用 :

MyFilter.java

chain.doFilter(request, response);

调用其余的过滤器和 servlet...

感谢安德烈的帮助!