0

我创建了 WSDL 文件,用 PERL 肥皂方法连接文件。执行后我收到以下错误消息

/usr/lib/x86_64-linux-gnu/perl5/5.26/XML/Parser.pm 第 187 行的第 1 行第 1 列第 1 字节格式不正确(无效令牌)。”。

请让我知道必须解决此问题。查看下面的源代码。

肥皂客户端.pl

#!/usr/bin/perl -w
#use SOAP::Lite +trace => ‘debug’;

use SOAP::Lite;
my $client = SOAP::Lite
->service('http://localhost/soap/perl/marketplace.wsdl');
my $result = $client->login( 'test_user', 'test_password' ); 


#~ my $result = $client->sayHello('');

print $result;

肥皂服务器.pl

#!/usr/bin/perl

function login( $login, $password )
{
  return $login;
}

function doFilter( $params )
{
  return "some string";
}

市场.wsdl

<?xml version="1.0" encoding="UTF-8"?>
<definitions name="Marketplace"
             targetNamespace="urn:Marketplace"
             xmlns:tns="urn:Marketplace"
             xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
             xmlns:xsd="http://www.w3.org/2001/XMLSchema"
             xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
             xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
             xmlns="http://schemas.xmlsoap.org/wsdl/">


    <message name="LoginRequest">
        <part name="login" type="xsd:string"/>
        <part name="password" type="xsd:string"/>
    </message>

    <message name="LoginResponse">
        <part name="result" type="xsd:string"/>
    </message>

    <portType name="LoginPort">
        <operation name="login">
            <input message="tns:LoginRequest"/>
            <output message="tns:LoginResponse"/>
        </operation>
    </portType>

    <binding name="LoginBinding" type="tns:LoginPort">
        <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>

        <operation name="login">
            <soap:operation soapAction="urn:LoginAction"/>
            <input>
                <soap:body use="encoded" namespace="urn:Marketplace" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </input>
            <output>
                <soap:body use="encoded" namespace="urn:Marketplace" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
            </output>
        </operation>
    </binding>

    <service name="WSDLService">
        <port name="LoginPort" binding="tns:LoginBinding">
            <soap:address location="http://localhost/soap/perl/soap-server.pl"/>
        </port>
    </service>
</definitions>

最后运行soap-client.pl 文件返回以下错误信息。

/usr/lib/x86_64-linux-gnu/perl5/5.26/XML/Parser.pm 第 187 行的第 1 行第 1 列第 1 字节格式不正确(无效令牌)。”。

4

1 回答 1

0

取消注释 #use SOAP::Lite +trace => 'debug'; 行并查看产生的错误。

于 2018-08-27T09:21:30.897 回答