Pergunta

I'm developing a web service in Java using Axis to get all the news from google, here is the code:

String s = "http://ajax.googleapis.com/ajax/services/search/news?v=1.0&rsz=8&q=";
URL url = new URL(s + URLEncoder.encode("test", "UTF-8"));
Reader reader = new InputStreamReader(url.openStream(), "UTF-8");
GoogleResults results = new Gson().fromJson(reader, GoogleResults.class); //here is the problem
return "service ok";

Here is my Java client:

Call call = (Call) new Service().createCall();
URL url = new URL("http://localhost:8080/axis/services/googleNews");
call.setTargetEndpointAddress(url);
call.setOperationName(new QName("method_name"));
Object answerWS = call.invoke(new Object[]{});
System.out.println(answerWS);

Without this code:

GoogleResults results = new Gson().fromJson(reader, GoogleResults.class);

everything works, otherwise I get a java.lang.reflect.InvocationTargetException.

The Web Service properly works alone, the problem occours when I call it with a client using the invoke method.

Any idea?

Thanks for help

Foi útil?

Solução

Ok, when you use an external jar in your java project you have to add it in the axis lib folder (path: /web_server_local_folder/axis/WEB-INF/lib). I resolved my issue adding the gson jar in that folder.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top