0

I have created WSDL file connect the file with PERL soap method. After the exection i get the below error message

"not well-formed (invalid token) at line 1, column 1, byte 1 at /usr/lib/x86_64-linux-gnu/perl5/5.26/XML/Parser.pm line 187." .

Please let me know have to fix the issue. Review below source code.

soap-client.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;

soap-server.pl

#!/usr/bin/perl

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

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

marketplace.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>

finally run the soap-client.pl file return below error message.

"not well-formed (invalid token) at line 1, column 1, byte 1 at /usr/lib/x86_64-linux-gnu/perl5/5.26/XML/Parser.pm line 187." .

Kanewilliam
  • 199
  • 2
  • 18

1 Answers1

0

Uncomment #use SOAP::Lite +trace => ‘debug’; line and see the resulting error.

rahed h
  • 41
  • 1