0

我正在使用 Axis 在 Java 中开发 Web 服务,以从 google 获取所有新闻,代码如下:

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 服务可以单独工作,当我使用调用方法通过客户端调用它时会出现问题。

任何想法?

感谢帮助

4

1 回答 1

0

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

于 2013-12-19T20:11:05.540 回答