java(axis)调用java编写的webservice

来源:互联网 发布:mac电脑 图像处理软件 编辑:程序博客网 时间:2024/05/18 21:39

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下测试通过。