2016-03-14 38 views
0

我希望仍然有一些GWT開發人員...我是GWT開發的新手,我試圖做一個基於表單的文件上傳系統。 爲此,我實現了一個HTTPServlet並覆蓋了方法doPost。 但是,當我提交表單時,我確實收到了沒有任何內容的回覆200。但是,如果你看下面我的文件,我發送一個500響應...並且System.out.println沒有被調用...GWT - HTTPServlet POST請求不叫

我經歷了很多網上已經提出的問題,但是無法找到一個解決辦法...

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。

回答

0

哦,我居然發現這個問題在我的代碼... 我曾與一個普通的URL模式定義的過濾器

的web.xml

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

這是我的servlet調用之前和我忘了使用方法:

MyFilter.java

chain.doFilter(request, response); 

調用過濾器和servlet休息...

感謝您的幫助,雖然安德烈!

0

刪除@RemoteServiceRelativePath("fileupload")。你已經在web.xml中設置了你的映射。