我正在使用 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 服务可以单独工作,当我使用调用方法通过客户端调用它时会出现问题。
任何想法?
感谢帮助