程序问答   发布时间:2022-06-02  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类?

开发过程中遇到java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类的问题如何解决?下面主要结合日常开发的经验,给出你关于java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类的解决方法建议,希望对你解决java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类有所启发或帮助;

但是从您的代码看来,您根本不需要使用RMI-为什么要使用它?您不只是要处理并将其存储在某个地方吗?

如果要存储大文件(最大32MB),请使用Blobstore API。

如果您知道只有不到1MB的文件,则可以使用JDO / JPA和 包含Blob的普通实体来存储它们- 此选项还可以使您轻松地预处理数据。

解决方法

我使用GWT开发一个Web应用程序,尝试在其中上传文件。我的servlet工作正常。

但是当我使用DiskFileItemFactory()时,它给了我错误。

如果有人可以更正我的代码或告诉我代码中缺少什么。

 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

                    response.getWriter().write(new String(fileContents)); 
}

private FileItem getFileItem(httpServletrequest request) {
    // TODO Auto-generated method stub
    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() 
            && "uploadForm".equals(item.getFieldName())) { 
          return item; 
        } 
      } 
    } catch (FileUploadException E) { 
      return null; 
    } 
    return null;
}

错误

 java.lang.NoClassDefFoundError: java.rmi.server.UID is a reStricted class. Please see the Google  App ENGIne developer's guide for more details.
at com.google.appENGIne.tools.development.agent.runtime.Runtime.reject(Runtime.java:51)
at org.apache.commons.fileupload.disk.DiskFileItem.<clinit>(DiskFileItem.java:109)
at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:199)
at org.apache.commons.fileupload.FileUploadBase.parserequest(FileUploadBase.java:361)
at org.apache.commons.fileupload.servlet.ServletFileUpload.parserequest(ServletFileUpload.java:126)
at com.server.FileUpload.getFileItem(FileUpload.java:101)
at com.server.FileUpload.dopost(FileUpload.java:48)
at javax.servlet.http.httpServlet.@R_675_9260@ce(httpServlet.java:637)

编辑:工作代码

    try {
            ServletFileUpload upload = new ServletFileUpload();
            response.setContentType("text/plain");


            FileItemIterator iterator = upload.getItemIterator(request);

            while (iterator.hasNext()) {
                FileItemStream item = iterator.next();

                InputStream stream = item.openStream();

                if (item.isFormField()) {
                    log.warning("Got a form field: " + item.getFieldName()  + " " +item);



                } else{
                    log.warning("Got an uploaded file: " + item.getFieldName() +
                              ",name = " + item.getName());
                    int len;
                    byte[] buffer = new byte[8192];
                    while ((len = stream.read(buffer,buffer.length)) != -1) {

                      response.getOutputStream().write(buffer,len);

                    }

                }

            }
    } catch (FileUploadException E) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

大佬总结

以上是大佬教程为你收集整理的java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类全部内容,希望文章能够帮你解决java.lang.NoClassDefFoundError:java.rmi.server.UID是受限制的类所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。