我有一个大型应用程序,无法连接到与客户端在同一服务器上运行的端点。
同一台服务器可以在其他客户端主机上工作,因此它是与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问题。但是不知道如何发现问题。
账单