sto conversione di un programma di Delphi 2007 per Delphi XE2 e avendo un problema con il seguente messaggio di errore:Delphi XE2 HTTPRIO Impossibile recuperare l'endpoint URL per servizio/porta
Impossibile recuperare l'endpoint URL per il servizio/port "/" da WSDL 'http: // .....'
Il servizio sto collegando a è scritto in Delphi 2007.
nel 2007 si compila e funziona senza problemi. Su XE2 con lo stesso codice cade sopra con l'errore.
Ho provato a reimportare l'interfaccia utilizzando il nuovo importatore WSDL con i valori predefiniti impostati ma senza gioia.
Ho anche provato a impostare i nomi di porta e servizio e l'errore persiste. Non sono sicuro di quali informazioni siano utili ma, per quanto posso dire, si sta connettendo.
Questo è il funzionamento del metodo che sto usando
<operation name="CheckRegistration">
<soap:operation soapAction="urn:ScubaUpdateWSIntf-IScubaUpdateWS#CheckRegistration" style="rpc"/>
<input>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</input>
<output>
<soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="urn:ScubaUpdateWSIntf-IScubaUpdateWS"/>
</output>
</operation>
questo è il messaggio:
<message name="CheckRegistration10Request">
<part name="centreId" type="xs:int"/>
<part name="centreName" type="xs:string"/>
<part name="checkActiveOnly" type="xs:boolean"/>
</message>
<message name="CheckRegistration10Response">
<part name="return" type="xs:boolean"/>
</message>
A parte l'importazione del WSDL, gettando su un HTTPRIO e chiamando il metodo con
(HTTPRIO1 as IScubaUpdateWS).CheckRegistration(strtoint(tcentre),tcentreName,true);
Non penso di fare altro e come ho detto lo stesso codice funziona su Delph i 2007.
in fase di progettazione, quando si imposta la proprietà HTTPRIO.WSDLLocation, sei quindi in grado di selezionare le proprietà HTTPRIO.Service e HTTPRIO.Port? Dovresti essere in grado di impostare Servizio e Porta in fase di progettazione, in caso contrario, potrebbe esserci qualcosa di sbagliato nell'URL. Ho avuto questo problema molte volte e sembra che non appena l'ho impostato una volta correttamente in fase di progettazione, quindi l'errore scompare .. –
Ciao John, Grazie, la porta è vuota nell'ide del Delphi 2007 così come in Xe2. Impostandolo cambia semplicemente il messaggio di errore. Ho appena provato a collegarmi a un altro delphi WSDL e ho lo stesso problema. Ho intenzione di provare a connettermi a un WSDL C# o ad una delle DLL di Amazon per vedere se riesco a determinare se i suoi wsdls delphi che stanno causando il problema. Pubblicherò più tardi oggi. –
Appena confermato che Xe2 può connettersi a un servizio web .net. Deve esserci qualcosa nei miei servizi web delphi che sta causando l'errore dell'endpoint. –