java invoke方法使用轴Web服务抛出InvocationTargetException

时间:2013-12-19 17:49:51

标签: java web-services gson axis invocationtargetexception

我正在使用Axis开发一个Java服务,以便从谷歌获取所有新闻,这里是代码:

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";

这是我的Java客户端:

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);

没有此代码:

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

一切正常,否则我得到一个java.lang.reflect.InvocationTargetException。

Web服务正常运行,当我使用调用方法向客户端调用时,问题就出现了。

有什么想法吗?

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

好的,当你在java项目中使用外部jar时,你必须将它添加到轴lib文件夹(路径:/ web_server_local_folder / axis / WEB-INF / lib)。 我解决了我在该文件夹中添加gson jar的问题。