繁体   English   中英

Google应用中的RMI错误

[英]rmi error in google app

使用以下行时我没有收到错误

    FileItemIterator it = servletFileUpload.getItemIterator(request);

当我使用以下行时我明白了

    List fileItemsList = servletFileUpload.parseRequest(request);

它们有何不同?rmi与servletFileUpload.parseRequest(request);有何关系?

错误:造成原因:

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.(DiskFileItem.java:103)
    at org.apache.commons.fileupload.disk.DiskFileItemFactory.createItem(DiskFileItemFactory.java:196)
    at org.apache.commons.fileupload.FileUploadBase.parseRequest(FileUploadBase.java:358)
    at org.apache.commons.fileupload.servlet.ServletFileUpload.parseRequest(ServletFileUpload.java:126)
    at morefile.CopyOfUploadApp.doPost(CopyOfUploadApp.java:147)

上下文:一种在Google Apps上使用Apache commons lib的文件上传应用程序。

Commons FileUpload(1.2.1)仅与GAE半兼容。 仅支持流式API,而不支持传统API,因为GAE不提供本地文件系统。 在堆栈中,我看到了DiskFileItem的用法,它基本上是在本地写入上载的文件,然后将其删除。

请参阅GAE的 Apache Commons FileUpload下的部分以及对Java框架的支持

这是流API的用法。

Commons FileUpload库中的DiskFileItem类在内部使用java.rmi.server.UID,并且Google Apps运行时环境禁止使用此类。 由于DiskFileItem在服务器文件系统上缓存上载的文件,并且Google Apps仍然禁止磁盘访问,因此删除对RMI特定的UID类的依赖将无法解决您的问题。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM