PDA

View Full Version : [JAVA] Web Services


Zelig
29-06-2005, 19:04
Ciao

mi sto avventurando nel mondo Java, e devo fare un applicazione che si colleghi ad un web services, per fare una prova ho deciso di usare il web services di Babelfih, così giusto per vedere come funzionano.

Sto usando AXIS.

Il problema è questo :

eseguendo passo passo vedo che a questa istruzione
service = new Service();
mi dice : "- Unable to find required classes (javax.activation.DataHandler and javax.mail.internet.MimeMultipart). Attachment support is disabled."

e poi quando arrivo al metodo invoke :

ret = (String) call.invoke( new Object[] { ps_mod, ps_text } );

mi va in time out.

potete darmi una mano grazie, non riesco a trovare su internet un esempio funzionante :-(

ciao

Zelig
30-06-2005, 13:10
raga ho saputo che devo usare SOAP
sapete dove trovare un esempio che usi SOAP

ciao

Zelig
30-06-2005, 14:13
ciao

ho trovato un esempio con le SOAP
ma non va,ho incluso nel progetto il file soap.jar

nel esecuzione in debug mi dice :

Class File Editor

Source not found

The source attachment does not containthe source for the file URLClassloader.class

E poi mi dice di selezionare il path dove è presente il file rt.jar
ma il path è gia corretto.

non so + che fare :-(

P.S: uso Eclipse

ciao

Zelig
12-07-2005, 16:31
Ciao
ho risolto tutti i vecchi problemi, dovevo includere altri 2 .jar,
infatti adesso il client su una normale connessione a internet funziona perfettamente, ma i problemi ritornano quando sono su una rete con proxy.

adesso vi chiedo se mi potete dire come fare ad connettere il mio webservices client con un proxy.

uso SOAP per il Web Service

ciao Zelig

anx721
13-07-2005, 00:13
intervengo io cosi interrompo questo tuo monologo...

mi dici che ambiente usi per studiare questa roba (e in generale j2ee)? Hai installato un application server? Eclipse immagino fornisca dei plugin appositi per la programmazione web oriented, è cosi? Segui qualche testo in particolare?

Zelig
13-07-2005, 10:10
intervengo io cosi interrompo questo tuo monologo...

mi dici che ambiente usi per studiare questa roba (e in generale j2ee)? Hai installato un application server? Eclipse immagino fornisca dei plugin appositi per la programmazione web oriented, è cosi? Segui qualche testo in particolare?

Ciao

io uso j2se SDK 1.4.2
non seguo nessun testo, uso il web per le informazioni
sto facendo una applicazione che deve anche connettersi ad un WEB SERVICES quindi io sto scrivendo il lato client.

come dicevo la parte web services client funziona ma quando lo eseguo da una rete con proxy mi va in connection timeout, è quindi sto cercando di implementare il la gestione del proxy.
Ho trovato qualche esempio ma non sembra funzionare.

Questo è quello che ho fatto per prova :

try {
Properties props = new Properties(System.getProperties());
props.put("http.proxySet", "true");
props.put("http.proxyHost", "http://193.254.25.26");
props.put("http.proxyPort", "3128");
Properties newprops = new Properties(props);
System.setProperties(newprops);
} catch (Exception ee){
ee.printStackTrace();
}


Call call = new Call ();
URL url;
Vector param = new Vector ();
Response result;

String ls_endpoint = "http://services.xmethods.net:80/perl/soaplite.cgi";
String ls_service = "urn:xmethodsBabelFish";
String ls_method = "BabelFish";

//dichiaro a quale url è in ascolto il servizio
url = new URL( ls_endpoint );
//setto dentro la call di soap l'identificativo del servizio
call.setTargetObjectURI( ls_service );
//indico alla chiamata quale metodo invocare remotamente
call.setMethodName( ls_method );
//il servizio usa lo standard SOAP encoding
call.setEncodingStyleURI( Constants.NS_URI_SOAP_ENC );
//secondo il meccanismo di soap serializzo le informazioni da inviare dentro ad un vettore
param.addElement(new Parameter("translationmode", String.class,translationmode, null));
param.addElement(new Parameter("sourcedata", String.class,sourcedata, null));
call.setParams( param );
//setto il timeout
call.setTimeout(60000);

try {
//invoco il web service ed attendo la risposta
result = call.invoke (url, "");
}catch (SOAPException e){
System.err.println("Caught SOAPException (" + e.getFaultCode() + "): " + e.getMessage());
return "OPERAZIONE FALLITA";
}

Grazie
ciao zelig