【问题标题】:ORA-28759: failure to open file with apex_web_service.make_rest_requestORA-28759: 无法使用 apex_web_service.make_rest_request 打开文件
【发布时间】:2022-01-11 03:12:46
【问题描述】:

我有一个成功的 POST 请求,要求 Postman 上传一个调用此 url 的文件:

https://test.sharepoint.com/sites/BM/_api/web/GetFolderByServerRelativeurl('/sites/BM/BM_UPLOADS/')/Files/add(url='test_file.pdf',overwrite=true)

当我尝试在 Oracle APEX 程序中应用它时:

l_resp := apex_web_service.make_rest_request(p_url         => 'https://test.sharepoint.com/sites/BM/_api/web/GetFolderByServerRelativeurl("/sites/BM/BM_UPLOADS/")/Files/add(url="test_file.pdf",overwrite=true)';
                                               p_file blob;',  `
                                               p_http_method => 'POST',
                                               p_body_blob   => p_file,
                                               p_wallet_path => 
                                                 'file:/home/r_erp/wallet',
                                               p_wallet_pwd  => 'test@2022'
                                               );

运行程序时出现错误:ORA-28759:打开文件失败

我说我做了 HTTPS 请求,这需要创建一个预言机钱包并在其中添加所需的证书。 所以我按照说明here

但没有运气同样的错误:ORA-28759: 无法打开文件

我不确定我是否将正确的 SharePoint 证书添加到 Oracle 钱包! 当我访问我的 SharePoint 网站时,我拥有这 3 个证书:

我下载了叶子之一:*.sharepoint.com 并通过 orapki 实用程序将其添加到钱包中 这个添加成功。

我下载了第二个:DigiCert Cloud Services CA-1 但是当我尝试添加这个时,我遇到了错误:无法读取证书。

我也运行此程序 ACL 授予:

begin


dbms_network_acl_admin.create_acl (
acl         => 'utl_https.xml',
description => 'HTTP Access',
principal   => 'BM',
is_grant    => TRUE,
privilege   => 'connect',
start_date  => null,
end_date    => null );


dbms_network_acl_admin.add_privilege (
acl        => 'utl_https.xml',
principal  => 'BD',
is_grant   => TRUE,
privilege  => 'resolve',
start_date => null,
end_date   => null
 );

  dbms_network_acl_admin.assign_acl (
acl        => 'utl_https.xml',
host       => '*.sharepoint.com',
lower_port => 443,
upper_port => 443 ); commit; end;

我在托管云服务上使用 Oracle APEX,并在 Linux 操作系统上使用 Apache Web 应用程序。 我还为 oracle 钱包路径和其中的所有文件授予 777 权限。 相同的错误:ORA-29273:HTTP 请求失败 ORA-28759: 打开文件失败

我的问题:有什么遗漏我应该做的吗? 如何将正确的 https 请求证书下载到 SharePoint 等平台?

【问题讨论】:

    标签: sharepoint plsql oracle-apex apex oracle-wallet


    【解决方案1】:

    ORA-28759: failure to open file 消息表明数据库无法在您在 p_wallet_path 参数中指定的位置打开钱包文件。

    • 指定位置时,请确保使用完整的 URI,即file:///path/to_filefile:// 是协议,后跟路径规范。
    • 确保路径正确,并指向包含 ewallet.p12 和(可选)cwallet.sso 文件的目录。
    • 确保操作系统权限允许数据库访问目录并打开文件。执行 Oracle 数据库进程的操作系统用户必须能够访问这些文件。

    【讨论】:

    • 你是对的,我的预言机钱包放错地方了。非常感谢
    猜你喜欢
    • 2015-11-23
    • 1970-01-01
    • 2014-12-29
    • 2019-01-06
    • 2010-12-17
    • 2020-12-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多