Java servlet在GWT中不工作

Java servlet在GWT中不工作,java,gwt,servlets,Java,Gwt,Servlets,我正在尝试在GWT中使用servlet。我发现 错误 我想浏览一个文件并在服务器端发送它 我经历了专家们提供的许多解决方案。但是我找不到我的错误 有人可以帮助解决这个问题 客户端 package uploadfile.client; public class Uploadfile implements EntryPoint { @SuppressWarnings("deprecation") public void onModuleLoad() { // TOD

我正在尝试在GWT中使用servlet。我发现 错误

我想浏览一个文件并在服务器端发送它

我经历了专家们提供的许多解决方案。但是我找不到我的错误

有人可以帮助解决这个问题

客户端

package uploadfile.client;
public class Uploadfile implements EntryPoint {

    @SuppressWarnings("deprecation")
    public void onModuleLoad() {
        // TODO Auto-generated method stub
            final FormPanel uploadForm = new FormPanel(); 

            uploadForm.setAction(GWT.getModuleBaseURL() +"uploadFileServlet"); 

            uploadForm.setEncoding(FormPanel.ENCODING_MULTIPART); 
            uploadForm.setMethod(FormPanel.METHOD_POST); 

            // Create a panel to hold all of the form widgets. 
            VerticalPanel panel = new VerticalPanel(); 
            uploadForm.setWidget(panel); 

            // Create a FileUpload widget. 
            FileUpload upload = new FileUpload(); 
            upload.setName("uploadFormElement"); 
            panel.add(upload); 

            // Add a 'submit' button. 
            Button uploadSubmitButton = new Button("Submit"); 
            panel.add(uploadSubmitButton); 
            uploadSubmitButton.addClickListener(new ClickListener() { 
              public void onClick(Widget sender) { 
                uploadForm.submit(); 
              } 
            }); 
            uploadForm.addFormHandler(new FormHandler() { 
              public void onSubmit(FormSubmitEvent event) { 
              } 
              public void onSubmitComplete(FormSubmitCompleteEvent event) { 
                Window.alert(event.getResults()); 
              } 
            }); 
            RootPanel.get().add(uploadForm); 
    }

}
服务器端

package uploadfile.server;


public class UploadFileServlet extends HttpServlet implements Servlet 
{ 
   private static final long serialVersionUID = 8305367618713715640L; 

    protected void doGet(HttpServletRequest request, 
        HttpServletResponse response) 
                        throws ServletException, IOException { 
  doPost(request, response);
 }

 protected void doPost(HttpServletRequest request, 
        HttpServletResponse response) 
                        throws ServletException, IOException { 

    response.setContentType("text/plain"); 
    FileItem uploadItem = getFileItem(request); 
    if (uploadItem == null) { 
            response.getWriter().write("NO-SCRIPT-DATA"); 
            return; 
    } 
    byte[] fileContents = uploadItem.get(); 
    //TODO: add code to process file contents here. We will just print 

    System.out.println(new String(fileContents)); 
    response.getWriter().write(new String(fileContents)); 
  } 

   private FileItem getFileItem(HttpServletRequest request) { 

  FileItemFactory factory = new DiskFileItemFactory(); 
  ServletFileUpload upload = new ServletFileUpload(factory); 
  try { 
      List items = upload.parseRequest(request); 
      Iterator it = items.iterator(); 
      while (it.hasNext()) { 
          FileItem item = (FileItem) it.next(); 
          if (!item.isFormField() 
                  && "uploadFormElement".equals(item.getFieldName())) { 
              return item; 
          } 
      } 
  } catch (FileUploadException e) { 
      return null; 
  } 
 return null; 
  } 
 } 
web.xml

  <?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>fileUploaderServlet</servlet-name>
<servlet-class>uploadfile.server.UploadFileServlet</servlet-class>
</servlet>
<!-- Servlets 
Default page to serve -->

<servlet-mapping>
<servlet-name>fileUploaderServlet</servlet-name>
<url-pattern>/uploadFileServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Uploadfile.html</welcome-file>
 </welcome-file-list>
</web-app>

fileUploaderServlet
uploadfile.server.UploadFileServlet
fileUploaderServlet
/上传文件服务
Uploadfile.html

我不是GWT开发人员,所以可能会有所不同,我认为您的servlet操作url是错误的。您正在尝试使用路径为
/uploadfile/uploadFileServlet
的servlet,但您的servlet实际上映射到url
/uploadFileServlet


还有一件事,如果您正在扩展
HttpServlet
,则无需实现
Servlet
,除非您有任何特定的原因要这样做。

“我发现了一些错误。”什么错误?您可以指定问题吗?有例外吗?什么有效,什么无效?@saifudin没有找到:/uploadfile的文件/uploadFileServlet@Timii找不到的文件:/uploadfile/uploadFileServlet尝试以下方式调用servlet:
uploadForm.setAction(“http://localhost/uploadfile/uploadFileServlet");谢谢,我更正了我的设置方法。现在我在org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)处得到了不同的错误java.lang.NoClassDefFoundError:org/apache/commons/io/output/DeferredFileOutputStream,位于org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:361)在org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)中,将apache commons io jar添加到服务器类路径中。
  <?xml version="1.0" encoding="UTF-8"?>
 <web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee                  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<servlet>
<servlet-name>fileUploaderServlet</servlet-name>
<servlet-class>uploadfile.server.UploadFileServlet</servlet-class>
</servlet>
<!-- Servlets 
Default page to serve -->

<servlet-mapping>
<servlet-name>fileUploaderServlet</servlet-name>
<url-pattern>/uploadFileServlet</url-pattern>
</servlet-mapping>
<welcome-file-list>
<welcome-file>Uploadfile.html</welcome-file>
 </welcome-file-list>
</web-app>