簡體   English   中英

如何解決Blob加密中的AbstractMethod錯誤?

[英]How to resolve AbstractMethod Error in blob encryption?

我想通過對其應用加密將blob上傳到azure blob存儲中。 所以我嘗試使用以下代碼來做到這一點:

 File f=new File("/home/prospera-user15/Desktop/test/download.jpeg");

        CloudStorageAccount account = CloudStorageAccount.parse(storageConnectionString);
        CloudBlobClient serviceClient = account.createCloudBlobClient();
        // Container name must be lower case.
        CloudBlobContainer container = serviceClient.getContainerReference("upload1");
        container.createIfNotExists();
        CloudBlockBlob blob = container.getBlockBlobReference("megha");
        final KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");
        keyGen.initialize(2048);
        final KeyPair wrapKey = keyGen.generateKeyPair();

        RsaKey key = new RsaKey("RSA",wrapKey);
        System.out.println("Uploading the encrypted blob.");
        BlobEncryptionPolicy policy = new BlobEncryptionPolicy(key, null);
        BlobRequestOptions options = new BlobRequestOptions();
        options.setEncryptionPolicy(policy);
        AccessCondition accessCondition = null;
        OperationContext opContext = null;
        try{
            blob.upload(new FileInputStream(f), f.length(), accessCondition, options, opContext);
        }catch (IOException e) {
            System.out.println(e.getMessage());
        }catch (StorageException e) {
            System.out.println(e.getErrorCode());
        }

對於上面的代碼,我得到以下異常:

AbstractMethodError表示自上次編譯以來某些類的定義已發生不兼容的更改

在您的情況下,您可能正在使用舊版本的接口實現,而該版本缺少一種新的接口方法,並且可能是RsaKey類/接口所RsaKey stacktrace。

當應用程序嘗試調用抽象方法時,將引發此異常。 通常,此錯誤由編譯器捕獲; 如果自上次編譯當前執行的方法以來某個類的定義發生了不兼容的更改,則僅在運行時會發生此錯誤。

來源: https : //docs.oracle.com/javase/6/docs/api/java/lang/AbstractMethodError.html

您是否還嘗試根據此處的文檔檢查是否已授權您的應用程序使用密鑰或機密?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM