SOAP :: Lite клиент не может подключиться к Centos 7 - PullRequest
0 голосов
/ 04 октября 2018

У меня большое приложение, которое не может подключиться к конечной точке, работающей на том же сервере, что и клиент.

Тот же сервер работает с других клиентских хостов, поэтому он локально связан с модулями perl и / или настройкой ssl.Я также могу подключиться к серверу с помощью другого локального клиента, написанного также на C.

Я воссоздал проблему здесь:

#!/usr/bin/perl

use strict;
use SOAP::Lite +trace => 'debug';

my $soap;

$soap = SOAP::Lite->new(proxy => "https://localhost:1800", ssl_opts => [ 
SSL_verify_mode => 0 ])->on_fault(\&report_error);
$soap->ns('urn:edge', 'ns');

my $som = $soap->call('edgeWsdl');

sub report_error {
    print "SOAP error: " . $_[1] . "\n";
}

Это генерирует:

SOAP::Transport::HTTP::Client::send_receive: POST https://localhost:1800 
HTTP/1.1
Accept: text/xml
Accept: multipart/*
Accept: application/soap
Content-Length: 417
Content-Type: text/xml; charset=utf-8
SOAPAction: "urn:edge#edgeWsdl"

<?xml version="1.0" encoding="UTF-8"?><soap:Envelope 
soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" 
xmlns:ns="urn:edge" 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> 
<ns:edgeWsdl xsi:nil="true" /></soap:Body></soap:Envelope>
SOAP::Transport::HTTP::Client::send_receive: 500 Can't connect to 
localhost:1800
Content-Type: text/plain
Client-Date: Wed, 03 Oct 2018 23:13:27 GMT
Client-Warning: Internal response

Can't connect to localhost:1800

SOAP error:
not well-formed (invalid token) at line 1, column 3, byte 3 at 
/usr/lib64/perl5/vendor_perl/XML/Parser.pm line 187.
Can't connect to localhost:1800

Поскольку я могу подключиться с других клиентов, это не проблема сети или брандмауэра.Как я могу отследить это?Уверен, что это проблема SSL.Но не знаю, как обнаружить проблему.

Билл

...