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

    Richiamare WebService [locale / remoto]

    Ciao,

    ho un WebService nella mia rete interna.
    Da un altro PC se eseguo questeo istruzioni:
    Codice PHP:
    <?php

    $client 
    = new SoapClient("http://IP_LOCALE:PORTA_LOCALE/axis2/services/SERVIZIO?wsdl"); 

    $total $client->METODO();

    var_dump($total);?>
    mi riesce ad eseguire il metodo.


    Provando la stessa pagina (modificata) per accedere da remoto:
    Codice PHP:
    <?php

    $client 
    = new SoapClient("http://IP_PUBBLICO:PORTA_PUBBLICA/axis2/services/SERVIZIO?wsdl"); 

    $total $client->METODO();

    var_dump($total);?>
    mi va in "maximum execution time".


    Ho già aperto la porta del firewall e riesco a collegarmi al servizio; ma PHP non riesce a richiamare i metodi.

    Quale può essere la causa?

  2. #2

    Re: Richiamare WebService [locale / remoto]

    codice:
    Fatal error: Maximum execution time of 30 seconds exceeded

    Qualcuno sa darmi qualche indicazione?

  3. #3
    ma tu da browser, dall'esterno, se metti la url

    codice:
    http://IP_PUBBLICO:PORTA_PUBBLICA/axis2/services/SERVIZIO?wsdl
    il wsdl lo leggi?
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

  4. #4
    Originariamente inviato da Santino83_02
    ma tu da browser, dall'esterno, se metti la url, il wsdl lo leggi?
    Con il browser non posso.

    Avendo solamente certe porte utilizzabili in uscita dal client del WebService (la 21 per esempio), ho impostato il firewall dietro al WebService per inviare alla porta 8080 il traffico che arriva all'IP pubblico sulla porta 21 (tanto non ho server FTP nella rete).

    Quando però provo a collegarmi a
    codice:
    http://IP_PUBBLICO:21/axis2/services/SERVIZIO?wsdl
    tutti i browser mi dicono che non possono collegarsi perché è una porta utilizzata da altri servizi .

    Ad ogni modo, provando a collegarmi con una sessione di HyperTerminal alla porta 21 riesco a connettermi correttamente.
    Quindi non è un problema di firewall. Però non posso fare il test con il browser (in locale invece sì, e funziona tutto).

  5. #5
    Ovvio...normale...
    Cambia la porta usabile (la 80 fa tanto schifo?)
    La situazione comunque nn è chiara. Il firewall intanto dovrebbe essere davanti al server, non dietro...Che necessità hai per usare la porta 21 e non la 80 o la 8080 o la 81 o qualunque porta > 1024?
    spiega bene la situazione...

  6. #6
    Originariamente inviato da Dascos
    Ovvio...normale...
    Cambia la porta usabile (la 80 fa tanto schifo?)
    No, ma preferivo la 21.

    Originariamente inviato da Dascos
    La situazione comunque nn è chiara. Il firewall intanto dovrebbe essere davanti al server, non dietro...Che necessità hai per usare la porta 21 e non la 80 o la 8080 o la 81 o qualunque porta > 1024?
    spiega bene la situazione...
    Il firewall è ovviamente TRA il server e il client. Il server è nella mia rete locale, mentre il client è un'applicazione in PHP su hosting Aruba.

    Il webservice sarà utilizzato da una pagina PHP, tramite la classe SoapClient, residente su Aruba.
    Sfortunatamente Aruba non permette connessioni all'esterno della sua rete, se non tramite specifiche porte (dai loro hosting è infatti anche impossibile utilizzare un server MySQL remoto, non di proprietà di Aruba).
    L'assistenza mi ha risposto:

    Originariamente inviato da @ssistenza @ruba
    in merito alla sua segnalazione la informiamo che sul suo spazio in Hosting sono correttamente utilizzabili le funzioni Socket del Php.

    La informiamo che, per motivi di sicurezza, non è possibile aprire connessioni verso risorse esterne alla nostra Rete su porte diverse da quelle di default, ossia:

    - 21 FTP
    - 25 SMTP
    - 80 HTTP
    - 110 POP3
    - 465 Secure SMTP
    - 143 IMAP

    La possibilità di configurare l'apertura delle porte è prerogativa dei servizi Server Virtuale o Dedicato:
    Potrei usare anche la 80.... ma non capisco che differenza ci sia dalla 21. L'avevo scelta perché son sicuro che non ospiteremo mai un server FTP.

  7. #7
    E' il browser che interpreta la 21 come "ftp", quindi non permette di fare una chiamata come l'hai definita tu
    Usa la 80 e via

  8. #8
    Ma io provo l'accesso direttamente da PHP, e non credo che Apache dovrebbe agire come un browser...... o sbaglio?

  9. #9
    Mi riferivo al fatto che da broswer non ti raggiunge il wsdl...
    L'errore di per sè è un timeout del server. O alzi il time out oppure rivedi il tuo servizio soap per ottimizzarlo e/o ridurne lelaborazione (non è che stai cercando di elaborare migliaia di record alla volta, vero?)
    Il timeout potrebbe anche essere dovuto al fatto che il tuo server "esce" con una adsl (quindi molto lenta) e il client esterno non riceve in tempo i dati...

  10. #10
    guarda che se il browser non raggiunge il wsdl, non lo raggiungerà neanche il soap, visto che usano lo stesso protocollo.

    ricontrolla il firewall, c'avrai qualche casino
    IP-PBX management: http://www.easypbx.it

    Old account: 2126 messages
    Oldest account: 3559 messages

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.