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