webservice服务端基于xfire,至于如何创建基于xfire的服务端,网上有很多文章就不再阐述。
服务端:
pojo:
public class GpsInfo {
private String carNum; //车牌
private double dwlongitude; //经度
private double dwlatitude; //纬度
private int status; //0在线1不在线
}
方法:
public GpsInfo findGPSInfoByID(String deviceIDSTR){
GPSInfoJdbcUtil gpsInfoJdbcUtil= new GPSInfoJdbcUtil();
GpsInfo gpsInfo = gpsInfoJdbcUtil.queryGpsInfoByID(deviceIDSTR);
return gpsInfo;
}
方法说明:传入一个车牌号,返回GpsInfo类的实例。
.
.
客户端:
下载axis1.4相关jar包,执行以下命令自动生成访问webservice代码框架,destdir为生成的目标目录。
java -classpath ".;commons-logging-1.0.4.jar;axis.jar;commons-discovery-0.2.jar;jaxrpc.jar;wsdl4j-1.5.1.jar;saaj.jar;activation.jar;mail.jar" org.apache.axis.wsdl.WSDL2Java -o "destdir" http://192.168.1.174:8080/gps/services/XXX?wsdl
当然,如果您使用axis其它版本,引用的jar包可能名字有所出入。将生成的代码和axis相关包加入工程后,编写示例代码如下:
GpsInfoPortType stub = null;
GpsInfoLocator service = new GpsInfoLocator();
GpsInfo gpsInfo = null;
try {
stub = service.getGpsInfoHttpPort();
gpsInfo = stub.findGPSInfoByID("浙A082XX");
System.out.println(gpsInfo.carNum + ","+ gpsInfo.dwlongitude + "," + gpsInfo.dwlatitude;);
} catch (ServiceException e1) {
e1.printStackTrace();
}
本例在MyEclipse6.5下测试通过。