簡體   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