【问题标题】:Is it possible to Consumes Sharepoint Webservices(SOAP-based) into ORACLE DB using PL/SQL是否可以使用 PL/SQL 将 Sharepoint Webservices(基于 SOAP)消耗到 ORACLE DB 中
【发布时间】:2010-01-07 22:37:22
【问题描述】:

我们需要将 Sharepoint 列表数据存储到 Oracle 中。

是否可以使用 PL/SQL 将 Sharepoint Webservices(基于 SOAP)消耗到 ORACLE DB 中,例如访问 _vti_bin/lists.asmx?op=GetList 并解析列表数据并存储在 DB 中。

有人试过吗???在深入研究这条路线之前,有什么(安全、环境)需要考虑的事情吗??

我认为 PL/SQL 支持调用 Web 服务并解析 XML 以存储在 DB 中。

感谢您的帮助!!!

【问题讨论】:

    标签: oracle web-services sharepoint list plsql


    【解决方案1】:

    应该是可能的(不确定是否有任何 Sharepoint Web 服务是非标准的)。根据您的数据库版本,这里有 2 篇文章展示了如何通过 PLSQL 调用 SOAP 网络服务:

    Oracle 9i 及更高版本:
    http://www.oracle-base.com/articles/9i/ConsumingWebServices9i.php

    Oracle 10g 及更高版本:
    http://www.oracle-base.com/articles/10g/utl_dbws10g.php

    【讨论】:

    • 感谢链接,看起来这是可能的; Sharepoint 遵循标准 SOAP,寻找已经尝试过的响应
    • 看起来在安全性方面存在问题(NTLM / Kerboros 身份验证)如何使用 sys.utl_http 或 sys.utl_dbws 调用具有 Kerberos 或 NTLM 身份验证的 .Net Web 服务(我们目前正在努力解决这个)。
    • 您的基础架构的设置是什么?您可以在问题中添加更多信息,详细说明您的堆栈是什么样子以及您正在尝试做什么。如果有更多信息,可能会建议其他解决方案。
    • 我们的 Sharepoint 站点使用 NTLM/Kerboros 身份验证通过 SSL。当我尝试使用匿名访问来访问 Web 服务时,它可以工作,但无论是使用 NTLM/Kerboros 还是 SSL,它都失败了我使用了 sys.utl_http.set_authentication(http_req,>,>,'Basic',错误的); ,但仍然没有用。除了 'Basic' 有没有其他方案,我们可以在这里使用帮助赞赏!!!
    【解决方案2】:

    由于使用标准的 Sharepoint Web 服务可能会很痛苦(原始 CAML 非常邪恶...),而且您可能遇到安全/授权问题,我可以建议以下几点:

    • 在 C# 中创建您自己的 .NET Web 服务,作为标准 Sharepoint 服务的包装器。使用您需要的参数和返回值创建一个干净的接口,并处理 .NET 代码中的任何安全问题。
    • 如果合适,在您的 Web 服务之上设置某种安全措施(密码作为服务的参数、基本身份验证等),并可能使用 HTTPS 进行部署。
    • 让您的 PL/SQL 代码使用 UTL_HTTP 调用新的 Web 服务(或者更好的是,使用现有的众多包装程序包之一,请参阅 http://ora-00001.blogspot.com/2009/07/calling-soap-web-service-from-plsql-by.html 以获取示例)。

    简而言之,使用 Microsoft 工具和技术创建您自己的简化服务,然后使用 PL/SQL 与之对话。

    【讨论】:

      【解决方案3】:

      这里有一个用于 PL/SQL 的 NTLM 实现,它(结合 UTL_HTTP)将允许您直接从 PL/SQL 调用 Sharepoint Web 服务:

      http://ora-00001.blogspot.com/2011/08/ntlm-for-plsql.html

      请注意,如果您的站点使用 HTTPS,您还需要设置一个 Oracle Wallet,并在您的 HTTP 调用中使用它。

      【讨论】:

        【解决方案4】:

        根据Oracle关于UTL_HTTP的文档,set authentication只支持BASIC HTTP和Amazon S3类型,所以NTLM是不可能的。

        http://download.oracle.com/docs/cd/E11882_01/appdev.112/e16760/u_http.htm#sthref16700

        在我看来,“最好”的方法是创建另一个充当包装器并允许基本或匿名访问的 Web 服务。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-02-04
          • 2013-10-25
          • 2010-12-22
          • 1970-01-01
          • 2013-06-12
          相关资源
          最近更新 更多