Ho problemi a impostare il timeout di jax-ws. Il mio codice è:Impostazione del timeout del client jax-ws
@WebServiceClient(name = "VoipDBJDBCService", targetNamespace = "http://db.server.voipmeter.jextreme.eu/", wsdlLocation = "http://trace0.nyc.blinkmind.com:8080/voipdb?wsdl")
public class VoipDBJDBCService extends Service {
public VoipDBJDBCService(URL wsdlLocation) {
super(wsdlLocation, new QName("http://db.server.voipmeter.jextreme.eu/", "VoipDBJDBCService"));
}
@WebEndpoint(name = "VoipDBJDBCPort")
public VoipDB getVoipDBJDBCPort() {
return super.getPort(new QName("http://db.server.voipmeter.jextreme.eu/", "VoipDBJDBCPort"), VoipDB.class);
}
}
E l'utilizzo:
VoipDB db = new VoipDBJDBCService(new URL(url)).getVoipDBJDBCPort();
Come collego in timeout? Ho trovato "soluzione" qui: https://jax-ws.dev.java.net/guide/HTTP_Timeouts.html ma non so dove lo agganci. Come ottenere il proxy? Quando chiamo getPort, il client tenta di connettersi e quindi si blocca per sempre se il server non risponde.
AGGIORNAMENTO: Questo codice viene richiamato dal metodo init() dell'applets se questo fa alcuna differenza.
Questo in realtà non funziona perché client si blocca sulla linea dove getPort è chiamato. – Lukasz
Bene, questo è tutto quello che puoi fare con il metodo fornito nel link. jax-ws scarica il WSDL del servizio per creare il proxy. Molto probabilmente questo è ciò che causa problemi a te. L'unica cosa che mi viene in mente adesso è scaricare una copia locale del WSDL e usarla, ma ovviamente non è molto elegante ... – musiKk