Re: [SOAP] WCF SOAP WSDL... Parsing Schema: element error
| From: | Richard Quadling | Date: | Sun, 09 Jan 2011 16:21:33 +0000 |
| Subject: | Re: [SOAP] WCF SOAP WSDL... Parsing Schema: element error | ||
| References: | 1 2 3 4 5 6 7 8 | Groups: | php.soap |
| Request: | Send a blank email to php-soap+get-3237@lists.php.net to get a copy of this message | ||
On 9 January 2011 10:59, etangle <shahid.mehmud@gmail.com> 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 <shahid.mehmud@gmail.com> 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 <rquadling@gmail.com>
>>>>> wrote:
>>>>>>
>>>>>> On 4 January 2011 10:30, Richard Quadling <rquadling@gmail.com>
>>>>>> wrote:
>>>>>> > On 2 January 2011 23:00, etangle <shahid.mehmud@gmail.com>
>>>>>> > 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