Re: [SOAP] WCF SOAP WSDL... Parsing Schema: element error

[email protected] (Richard Quadling) Sun, 9 Jan 2011 16:21:33 +0000
Newsgroups php.soap
Message-ID <[email protected]>
On 9 January 2011 10:59, etangle <[email protected]> wrote:
>
> Dear Richard,
>
> I think in windows hosts file, you need to add hostname / ip in different
> order as:
>
> 84.235.63.38   gadm01wsrv04
>
> earlier, you perhaps added like:
> gadm01wsrv04    84.235.63.38
>
> BR
>
>
> etangle wrote:
>>
>> Dear Richard,
>> Try to tracert gadm01wsrv01 to 04, I tested, and if entries in hosts file
>> are true, it resolves to corresponding IP and traces route...
>> Also, you can also check if endpoints are accessible by putting url in
>> browser:
>> http://84.235.63.38/MTReceiver/TSLMTRECEIVER.svc?xsd=xsd0
>> http://84.235.63.38/MTReceiver/TSLMTRECEIVER.svc?xsd=xsd1
>> http://84.235.63.38/MTReceiver/TSLMTRECEIVER.svc?xsd=xsd2
>> Do you think if we use hostname gadm01wsrv01 to 04, they access different
>> endpoints, as terminating url parameters xsd=xsd2 are same for
>> gadm01wsrv02 and gadm01wsrv03 (hosts are different)..
>> Rgds,
>> Shahid
>>
>>
>> etangle wrote:
>>>
>>> Dear,
>>> You still have name resolution problem, please check if you are using
>>> windows (hosts file):
>>> c:\windows\system32\drivers\etc\hosts
>>> and add the following:
>>> gadm01wsrv04    84.235.63.38 # Supplied by etangle
>>> gadm01wsrv01    84.235.63.38 # Guessed by me and passed
>>> gadm01wsrv02    84.235.63.38 # Guessed by me and failed
>>> gadm01wsrv03    84.235.63.38 # Guessed by me and not even got that far
>>>
>>> This worked for me, and should work for you too...
>>> Regards,
>>> Shahid
>>>
>>> RQuadling wrote:
>>>>
>>>> On 4 January 2011 12:53, Shahid Mahmud <[email protected]> wrote:
>>>>> Dear Richards,
>>>>>
>>>>> thanks for your efforts, i checked from my service provider, and he
>>>>> confirmed that all mentioned hosts conform to same one ip...
>>>>> Can you also copy or mail me the part of script you are testing...
>>>>>
>>>>> Rgds,
>>>>> Shahid Mahmud
>>>>>
>>>>>
>>>>> On Tue, Jan 4, 2011 at 21:43, Richard Quadling <[email protected]>
>>>>> wrote:
>>>>>>
>>>>>> On 4 January 2011 10:30, Richard Quadling <[email protected]> wrote:
>>>>>> > On 2 January 2011 23:00, etangle <[email protected]> wrote:
>>>>>> >>
>>>>>> >> There is a trick for that:
>>>>>> >>
>>>>>> >> In your windows hosts file, add after localhost
>>>>>> >> gadm01wsrv04    84.235.63.38
>>>>>> >>
>>>>>> >> I appreciate your help...
>>>>>> >>
>>>>>> >>
>>>>>> >>
>>>>>> >> etangle wrote:
>>>>>> >>>
>>>>>> >>> Hello Everyone,
>>>>>> >>> I am trying to access a WCF WSDL service to send message, but
>>>>>> getting
>>>>>> >>> following error:
>>>>>> >>>
>>>>>> >>> SOAP-ERROR: Parsing Schema: element
>>>>>> >>>
>>>>>> >>>
>>>>>> 'http://schemas.microsoft.com/2003/10/Serialization/Arrays:ArrayOfstring'
>>>>>> >>> already defined
>>>>>> >>>
>>>>>> >>> I am using native SOAP extension of php, and also tried with
>>>>>> nuSOAP,
>>>>>> >>> but
>>>>>> >>> getting same error...
>>>>>> >>> My script looks as; using deliverMTMessage method with
>>>>>> parameters...
>>>>>> >>>
>>>>>> >>> <?php
>>>>>> >>> try {
>>>>>> >>>    $client = new
>>>>>> >>>
>>>>>> SoapClient("http://84.230.69.67/MTRECEIVER/TSLMTRECEIVER.svc?wsdl");
>>>>>> >>>    $response=$client->deliverMTMessage(array(
>>>>>> >>>
>>>>>> >>> 'applicationId' => '5789',
>>>>>> >>>
>>>>>> >>> 'username'=>'nickname',
>>>>>> >>>
>>>>>> >>> 'password' => 'WknqPI==',
>>>>>> >>>
>>>>>> >>> 'price' => '',
>>>>>> >>>
>>>>>> >>> 'moMessageId' => '',
>>>>>> >>>
>>>>>> >>> 'mTMessageId' => '',
>>>>>> >>>
>>>>>> >>> 'telcoId' => '8',
>>>>>> >>>
>>>>>> >>> 'receiverMsisdn' => '97650000000',
>>>>>> >>>
>>>>>> >>> 'senderMsisdn' => '97650000000',
>>>>>> >>>
>>>>>> >>> 'messageType' => 'SMS',
>>>>>> >>>
>>>>>> >>> 'mtType' => '2',
>>>>>> >>>
>>>>>> >>> 'messageText' => 'test message from shahid',
>>>>>> >>>
>>>>>> >>> 'serviceType' => '1',
>>>>>> >>>
>>>>>> >>> 'additionalInformation' => '',
>>>>>> >>>
>>>>>> >>> 'shortCode' => '836282',
>>>>>> >>>
>>>>>> >>> 'billServiceID' => '',
>>>>>> >>>
>>>>>> >>> 'priority' => '1'));
>>>>>> >>>    print_r($response);
>>>>>> >>>    echo htmlentities($response);
>>>>>> >>>
>>>>>> >>>     } catch (SoapFault $e) {
>>>>>> >>>    print_r($e->getMessage());
>>>>>> >>>  }
>>>>>> >>> ?>
>>>>>> >>>
>>>>>> >>> I shall appreciate any help...
>>>>>> >
>>>>>> > And for http://gadm01wsrv01/MTRECEIVER/TSLMTRECEIVER.svc?xsd=xsd0 ?
>>>>>> >
>>>>>> > And for server 2 ?
>>>>>> >
>>>>>> > Server2 doesn't seem to be on the same address as I've amended my
>>>>>> > hosts file to ...
>>>>>> >
>>>>>> > gadm01wsrv04    84.235.63.38 # Supplied by etangle
>>>>>> > gadm01wsrv01    84.235.63.38 # Guessed by me and passed
>>>>>> > gadm01wsrv02    84.235.63.38 # Guessed by me and failed
>>>>>> > gadm01wsrv03    84.235.63.38 # Guessed by me and not even got that
>>>>>> far
>>>>>> > as server 2 fails.
>>>>>> >
>>>>>> > If you are going to make the service public, then can you use public
>>>>>> > addresses. If we need a special setup it is going to make things
>>>>>> > harder to deal with.
>>>>>> >
>>>>>> > Richard.
>>>>>> >
>>>>>> > --
>>>>>> > Richard Quadling
>>>>>> > Twitter : EE : Zend
>>>>>> > @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
>>>>>> >
>>>>>>
>>>>>> I'm not getting consistent results. Are the IP <-> Names consistent?
>>>>>>
>>>>>> The SoapClient class cannot completely parse the WSDL file. So I can't
>>>>>> do anything.
>>>>>>
>>>>>> --
>>>>>> Richard Quadling
>>>>>> Twitter : EE : Zend
>>>>>> @RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY
>>>>>
>>>>>
>>>>
>>>> Very simple ...
>>>>
>>>>     $client = new SoapClient
>>>>             (
>>>>             $wsdl,
>>>>             array
>>>>                     (
>>>>                     'encoding'  => 'ISO-8859-1',
>>>>                     'exception' => True,
>>>>                     'trace'     => True,
>>>>                     )
>>>>             );
>>>>
>>>> where
>>>>
>>>> $wsdl = 'http://84.235.63.38/MTRECEIVER/TSLMTRECEIVER.svc?wsdl';
>>>>
>>>> So. Just trying to read the WSDL file. This bombs with the different
>>>> server names.
>>>>
>>>> I've added all 4 servers to my hosts file ...
>>>>
>>>> gadm01wsrv01    84.235.63.38
>>>> gadm01wsrv02    84.235.63.38
>>>> gadm01wsrv03    84.235.63.38
>>>> gadm01wsrv04    84.235.63.38
>>>>
>>>> And the error still exists.
>>>>
>>>> SOAP-ERROR: Parsing Schema: can't import schema from
>>>> 'http://gadm01wsrv01/MTRECEIVER/TSLMTRECEIVER.svc?xsd=xsd0'

I'd be interested in knowing why you think this? What doc? Are you are
windows networking guru?

As I've said, _OUR_ domain is making the assumption that an
unqualified machine name is on _OUR_ network.

Hosts file is irrelevant.



-- 
Richard Quadling
Twitter : EE : Zend
@RQuadling : e-e.com/M_248814.html : bit.ly/9O8vFY