Perl SOAP::Lite не може да извика метод

Работя върху скрипт за получаване на данни от уеб услугите на OBIEE. Следното показва правилния създаден сапунен плик, но не получавам никакви резултати.

#!/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);

ето плика за сапун, който той създаде, който работи перфектно с помощта на 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>

Проверих сървъра на OBIEE и не виждам заявка. Той генерира правилните неща, но заявката не минава. Всяко прозрение е високо ценено.


person user3050672    schedule 29.11.2013    source източник


Отговори (1)


Проблемът се разрешава чрез използване на крайната точка за прокси.

person user3050672    schedule 02.12.2013
comment
Можете ли да маркирате този отговор като приет, така че този въпрос да не се показва като без отговор? Благодаря. - person dsolimano; 01.05.2014