简体   繁体   English

Perl SOAP :: Lite无法调用方法

[英]Perl SOAP::Lite unable to call method

I am working on a script to get data from OBIEE Web services. 我正在研究从OBIEE Web服务获取数据的脚本。 The following shows the correct soap envelope created however i do not get any results. 下面显示了正确创建的肥皂信封,但是我没有得到任何结果。

#!/usr/bin/perl
use warnings;
use strict;
use diagnostics;

use XML::Simple;
use Data::Dumper;
use Log::Log4perl;
use SOAP::Lite 0.65 +trace => 'debug';

#Initialize Logger
Log::Log4perl->init("log.conf");
my $logger = Log::Log4perl->get_logger();

my $outputFormat = "SAWRowsetData";
my $SQL = qq(sql);
my $sessionID = "session id";

my $soap = SOAP::Lite
->readable(1)
->uri('urn://oracle.bi.webservices/v6')
->proxy( 'http://host:port/analytics/saw.dll/wsdl/v6' );

my $serializer = $soap->serializer();
$serializer->register_ns("urn://oracle.bi.webservices/v6","sawsoap");

my $som = $soap->call('executeSQLQuery',
SOAP::Data->name('sawsoap:sql' => $SQL)->type('xsd:string'),
SOAP::Data->name('sawsoap:outputFormat' => $outputFormat)->type('sawso
ap:XMLQueryOutputFormat'),
SOAP::Data->name('sawsoap:executionOptions')->type('sawsoap:XMLQueryEx
ecutionOptions')->value(
    \SOAP::Data->value(
        SOAP::Data->name("sawsoap:async")->type("xsd:boolean")->va
ue("?"),
SOAP::Data->name("sawsoap:maxRowsPerPage")->type("xsd:int")->value("?"),
        SOAP::Data->name("sawsoap:refresh")->type("xsd:boolean")->
value("?"),
SOAP::Data->name("sawsoap:presentationInfo")->type("xsd:boolean")->value("?"),
SOAP::Data->name("sawsoap:type")->type("xsd:string")->value("?"))),
SOAP::Data->name('sawsoap:sessionID' => $sessionID)->type('xsd:string'));

$logger->info(Dumper $som);

here is the soap envelope it produced that works perfectly fine using soapUI 这是它产生的肥皂信封,使用soapUI可以很好地工作

<soap:Envelope 
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:sawsoap="urn://oracle.bi.webservices/v6" 
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" 
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<soap:Body>
<logon xmlns="urn://oracle.bi.webservices/v6">
  <sawsoap:name xsi:type="xsd:string">name</sawsoap:name>

  <sawsoap:password xsi:type="xsd:string">password</sawsoap:password>
</logon>
</soap:Body>
</soap:Envelope>

I checked the OBIEE server and do not see a request. 我检查了OBIEE服务器,但没有看到请求。 It is generating the right stuff but the request is not getting across. 它正在生成正确的内容,但请求没有实现。 Any insight is greatly Appreciated. 任何见解都将不胜感激。

通过使用终结点代理可以解决此问题。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM