0

如以下链接所示,NCBI(国家生物技术信息中心)为 C++、C#、Perl 和 Java 中的生物信息学提供了一个小而非常有用的 SOAP 客户端,但不幸的是,没有这个 SOAP 客户端的 PHP 版本。

ftp://lucid.bic.nus.edu.sg/biomirrors/blast/web_services/

这是帮助我们 BLAST 基因序列的 Perl SOAP 客户端的一部分:

    my $search_lite = SOAP::Data->value(
        SOAP::Data->name('options' => 
                         \SOAP::Data->value(
        SOAP::Data->name('Blast4-options-lite' =>
                         \SOAP::Data->name('task' => 'blastn'))
                         )))->uri(NCBI_XML_NAMESPACE);

    my $result = 
        $soap->call(SOAP::Data->name('Blast4-queue-search-request-lite')
                          ->uri(NCBI_XML_NAMESPACE)
                          => $search_lite);

我试图将其转换为 PHP,但它不起作用。我也使用了这个指南:http ://www.ncbi.nlm.nih.gov/books/NBK55699/

这是我的PHP代码:

try {
    $soapClient = new SoapClient($wsdlUrl);

    $result = $soapClient->SubmitSearchLite(array(
        //????
    ));
    echo $result;
}
catch {}

你能帮我修一下吗?

4

2 回答 2

1

你考虑过使用PHP/Java Bridge吗?它应该允许您通过 Java 使用 Web 服务,然后将您拥有的任何信息发送到您的 PHP 应用程序:

PHP/Java Bridge 是基于 XML 的流式网络协议的实现,可用于将原生脚本引擎(例如 PHP、Scheme 或 Python)与 Java 虚拟机连接起来。它比通过 SOAP 的本地 RPC 快 50 倍,在 Web 服务器端需要更少的资源。它比通过 Java 本地接口直接通信更快、更可靠,并且不需要额外的组件即可从 PHP 调用 Java 过程或从 Java 调用 PHP 过程。

如果需要对 Web 服务进行任何额外更改,那么 Web 服务和您的 PHP 应用程序之间的这个额外层将证明自己很有用,因为您很可能只需要弄乱 Java 层,保持您的 PHP 代码完好无损。

于 2012-04-20T07:12:33.020 回答
-1

您知道 PHP 有自己的 SOAP 客户端,对吧? http://www.php.net/manual/en/class.soapclient.php

于 2012-04-20T07:35:20.217 回答