PDA

View Full Version : [Java] Errore quando tento di collegarmi ad un Web Services


e-commerce84
04-04-2011, 16:19
Ciao,
ho un problema nel collegarmi ad un mio web services.

Stavo seguendo questa guida: http://www.eclipse.org/webtools/community/tutorials/BottomUpAxis2WebService/bu_tutorial.html

Ho scoperto che è "sbagliata" (nel senso che è vecchia e diversa da come funzionano le cose oggi).

La soluzione mi è venuta googlando e trovando questo post di un utente di Html.it che aveva il mio stesso identico problema:
http://forum.html.it/forum/showthread.php?threadid=1442266

La differenza è che quando provo a lanciare la classe ConverterClient come un'applicazione Java nella console ho una serie di errori e non riesco a capire quale possa essere il motivo...

La mia classe ConverterClient[/code] è la seguente:


package wtp;

import java.rmi.RemoteException;
import org.apache.axis2.AxisFault;
import wtp.ConverterStub.CelsiusToFarenheit;
import wtp.ConverterStub.CelsiusToFarenheitResponse;

public class ConverterClient {
public static void main(String[] args) {
try {
float celsiusValue = 100;
ConverterStub stub = new ConverterStub();
CelsiusToFarenheit c2f = new CelsiusToFarenheit();
c2f.setCelsius(celsiusValue);
CelsiusToFarenheitResponse res = stub.celsiusToFarenheit(c2f);
System.out.println("Celsius : "+celsiusValue+" = "+"Farenheit : "+res.get_return());
} catch (AxisFault e) {
e.printStackTrace();
} catch (RemoteException e) {
e.printStackTrace();
}
}
}


E l'errore che mi dà è il seguente:

[b]
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/http/HttpResponseFactory
at org.apache.axis2.transport.http.SimpleHTTPServer.init(SimpleHTTPServer.java:113)
at org.apache.axis2.engine.ListenerManager.init(ListenerManager.java:74)
at org.apache.axis2.context.ConfigurationContext.getListenerManager(ConfigurationContext.java:692)
at org.apache.axis2.client.ServiceClient.configureServiceClient(ServiceClient.java:163)
at org.apache.axis2.client.ServiceClient.<init>(ServiceClient.java:143)
at wtp.ConverterStub.<init>(ConverterStub.java:103)
at wtp.ConverterStub.<init>(ConverterStub.java:89)
at wtp.ConverterStub.<init>(ConverterStub.java:138)
at wtp.ConverterStub.<init>(ConverterStub.java:130)
at wtp.ConverterClient.main(ConverterClient.java:12)
Caused by: java.lang.ClassNotFoundException: org.apache.http.HttpResponseFactory
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:303)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:316)
... 10 more


Non riesco proprio a capire cosa ci sia che non va bene...

Grazie
Andrea

PGI-Bis
04-04-2011, 16:52
un ClassNotFoundException arriva quando una libreria usata dal tuo programma richiede una classe che però non è presente nel classpath dell'applicazione.

Risolvi aggiungendola alle dipendenze del tuo progetto. Di norma è contenuta in qualche jar.

Nel caso di specie, la classe org/apache/http/HttpResponseFactory fa parte del modulo http core di Jakarta.

Fruga qui:

http://jakarta.apache.org/

e vedi se riesci a pescare il jar che ti interessa. Magari guarda prima nelle librerie dell'ide che usi, forse c'è già e allora ti basterà includerla.

e-commerce84
04-04-2011, 16:54
Appena risolto...alla fine googlando sono arrivato a scaricare questo file: httpcomponents-client-4.1.1-bin.zip dal sito di Apache che contiene il jar che mi serviva...e funziona :)