Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1

    Sovrascrivere IP nel client di un web service

    Ciao a tutti,
    ultimamente sto utilizzando solo web service e quindi mi capitano tanti problemi che non riesco a risolvere.
    Praticamente eseguo la seguente chiamata
    Codice PHP:
    $client = new SoapClient('https://user:password@webservice/servizio.svc?wsdl'); 
    il problema è che ricevo una risposta di questo tipo
    SoapFault Object ( [messagerotected] => SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://215.21.23.21/servizio.svc?wsdl' : failed to load external entity "http://215.21.23.21/servizio.svc?wsdl"

    L'indirizzo ip che in questo caso ho riportato fasullo, è lo stesso presente nel file WSDL e che però a detta di quelli che hanno sviluppato il web service non devo utilizzarlo siccome non funziona ma devo sovrascriverlo con l'indirizzo indicato sopra ovvero https://webservice/servizio.svc?wsdl ora il problema è che non saprei come fare...quando invoco new SoapClient e gli do l'indirizzo anche se aggiungo l'opzione location non mi sovrascrive quell'ip che è indicata come location dentro il file WSDL, secondo voi come posso fare a forzare la cosa? Dal lato server non mi possono aiutare in quanto non conoscono php e mi sanno dire solo di sovrascrivere quello che il wsdl gli suggerisce.
    Grazie dell'aiuto che spero possiate darmi :-)
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  2. #2
    non saprei di preciso, cmq scaricati il wsdl in un file sul tuo server, modifichi a mano i puntamenti, e carichi quello... usando Soapclient non saprei
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  3. #3
    Ciao, grazie del consiglio, ho creato il file WSDL in locale,
    ho richiamato la funzione così:
    Codice PHP:
    $client = new SoapClient('indirizzo_locale_del_server/servizio.svc.xml'); 
    ma purtroppo mi da lo stesso errore e riprende sempre quel maledetto ip...praticamente ottengo l'identico errore di sopra.
    Qualche altro consiglio?
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  4. #4
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    Nel file locale hai tolto tutti i puntamenti all'ip?

  5. #5
    Si... Però il file punta ad un altro ancora... E probabilmente quello mi dà gli ip... Domani farò altre prove con entrambi i file in locale se riesco.
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  6. #6
    Ho capito perchè non riesco a togliere l'ip...ora ve lo spiego così magari avete un'idea di come risolvere.
    Praticamente il primo WSDL punta ad un altro e fin qui nessun problema, li sostituisco entrambi ed è fatta.
    Però il primo WSDL importa degli schemi in questo modo:
    https://webservice/servizio.svc?xsd=xsd0
    https://webservice/servizio.svc?xsd=xsd1
    https://webservice/servizio.svc?xsd=xsd2
    eccetera..
    e andando a visitare fisicamente questo indirizzo mi ritrovo di nuovo i vari ip al posto dell'indirizzo (in questo caso ho scritto webservice per comodità) e quindi mi ripropone il solito
    http://10.xx.xx.xx/servizio.svc

    Esiste un modo per far sostituire in automatico alla libreria di soap l'indirizzo ip con un altro?
    Purtroppo devo fare tutto lato client, altri hanno risolto ma con altri linguaggi lato client e chi mi offre il servizio non vuole offrirmi altro aiuto.
    Aiutatemi per favore...sigh!!!
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  7. #7
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    la butto lì, ma sinceramente non so se possa funzionare
    invece che usare da subito SoapClient, usa qualcosa che ti consenta di salvare sul tuo server gli schemi (forse con cURL lo puoi fare), li modifichi e usi quelli modificati sul tuo server per fare le chiamate SOAP

  8. #8
    Ciao clasku...ho risolto proprio così...ora però ho un altro problema...mi dice che una funzione è già definita
    SoapFault Object ( [messagerotected] => SOAP-ERROR: Parsing WSDL: 'FunzioneWebServiceService_GetRequest_InputMessage ' already defined
    ti riporto parte dello schema dove mi ritrovo questo nome due volte
    Codice PHP:
    <wsdl:message name="FunzioneWebServiceService_GetRequest_InputMessage"><wsdl:part name="parameters" element="tns:GetRequest"/></wsdl:message>OMISSIS
    <wsdl:portType name="FunzioneWebService"><wsdl:operation name="GetRequest"><wsdl:input wsaw:Action="http://omissis/GetRequest"message="tns:FunzioneWebServiceService_GetRequest_InputMessage"/><wsdl:output wsaw:Action="http://omissis/GetRequestResponse"message="tns:FunzioneWebServiceService_GetRequest_OutputMessage"/></wsdl:operation
    Questo in breve per tutte le funzioni...come devo fare?
    E' davvero un casino...ho effettuato i test su altri server e altri wsdl e non ho avuto problemi ora che vado in pre-produzione e dovevo solo fare delle prove reali...non va niente e mi sa che devo rifare tutto per avere un sistema funzionante...mannaggia.
    Spero riusciate a darmi qualche dritta.
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

  9. #9
    Utente di HTML.it L'avatar di clasku
    Registrato dal
    Aug 2006
    Messaggi
    3,197
    non è che per qualche arcano motivo chiami due volte il wsdl?

  10. #10
    Ciao clasku grazie per l'aiuto ma ho risolto.
    Praticamente il wsdl veniva chiamato come suggerisci tu più volte in quanto c'erano ancora dei wsdl remoti che a loro volta ne chiamavano altri eccetera. Praticamente è un bug di php che ha problemi con i WSDL distribuiti, l'errore è proprio questo. Ho ricostruito tutta la struttura dei vari schemi e WSDL distribuiti e li ho messi tutti in locale cambiando opportunamente i vari riferimenti.
    E così magicamente il tutto ha funzionato.
    Grazie per il preziosissimo aiuto.
    Come si inserisce risolto nel titolo?
    ______________________________
    Mr_BInarydigiT

    La forza delle idee sta nella loro realizzazione.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.