今天用cxf调了下.net下的webservice,感觉很不错,就当笔记记录一下。
cxf支持同步和异步方式的调用,代码很简单,不过内部实现好像有点麻烦,我进去看了一下他们的实现,可是看不懂,哈哈。
cxf支持同步和异步方式的调用,代码很简单,不过内部实现好像有点麻烦,我进去看了一下他们的实现,可是看不懂,哈哈。
public class CallDNet {
public static DynamicClientFactory dcf = DynamicClientFactory.newInstance();
public static org.apache.cxf.endpoint.Client client = dcf
.createClient("http://www.i-pinche.com//handler/PinCheWebServiceMethods.asmx?wsdl");
/**
* @param args
*/
public static void main(String[] args) {
asynchronously();
}
/**
* 异步
*/
public static void asynchronously() {
ClientCallback callback = new ClientCallback();
try {
client.invoke(callback, "GetRoadList");
Map<String, Object> map = callback.getResponseContext();
for (String key : map.keySet()) {
System.out.println(map.get(key));
}
Object[] replys = callback.get();
for (Object o : replys) {
System.out.println(o);
}
} catch (Exception e) {
e.printStackTrace();
}
}
/**
* 同步
*/
public static void synchronously() {
Object[] replys = null;
try {
replys = client.invoke("GetRoadList");
} catch (Exception e) {
e.printStackTrace();
}
for (Object o : replys) {
System.out.println(o);
}
}
}