SOAP and REST client

接上文,实现了web service后,可以通过URI访问:

http://localhost:8080/axis2/services/TemperatureWebService/c2fConvertion?cValue=32

 

或者自己写一个client。

 

SOAP格式:

package ws.example;

public class TemperatureConverterServiceClient {
    public static void main(String[] args) {
        TemperatureConverterStub stub;
        try {
            double c_value = 32;
            stub = new TemperatureConverterStub("http://localhost:8080/axis2/services/TemperatureWebService");
            TemperatureConverterStub.C2FConvertion c2f = new TemperatureConverterStub.C2FConvertion();
            c2f.setCValue(c_value);
            TemperatureConverterStub.C2FConvertionResponse res = stub.c2FConvertion(c2f);
            System.out.println(res);
            System.out.println("C Value : "+c_value+ "/tResult : " +res.get_return());
            TemperatureConverterStub.F2CConvertion f2c = new TemperatureConverterStub.F2CConvertion();
            f2c.setFValue(res.get_return());

            TemperatureConverterStub.F2CConvertionResponse res1 = stub.f2CConvertion(f2c);
            System.out.println("F Value : "+res.get_return()+ "/tResult : " +res1.get_return());
       } catch (Exception e) {
           e.printStackTrace();
       }
    }
}

结果为:

C Value : 32.0 Result : 89.6
F Value : 89.6 Result : 32.0

 

REST格式:

public class RESTClient {

    private static String toEpr = "http://localhost:8080/axis2/services/TemperatureWebService";
   
    public static void main(String[] args) throws AxisFault {

        Options options = new Options();
        options.setTo(new EndpointReference(toEpr));
        //options.setTransportInProtocol(Constants.TRANSPORT_HTTP);
        options.setTransportInProtocol(Constants.TRANSPORT_MAIL);
       
        options.setProperty(Constants.Configuration.ENABLE_REST, Constants.VALUE_TRUE);

        ServiceClient sender = new ServiceClient();
        sender.setOptions(options);
        OMElement result = sender.sendReceive(getPayload());

        try {
            XMLStreamWriter writer = XMLOutputFactory.newInstance()
                    .createXMLStreamWriter(System.out);
            result.serialize(writer);
            writer.flush();
        } catch (FactoryConfigurationError e) {
            e.printStackTrace();
        } catch (XMLStreamException e) {
   e.printStackTrace();
  }
    }
    private static OMElement getPayload() {
        OMFactory fac = OMAbstractFactory.getOMFactory();
        OMNamespace omNs = fac.createOMNamespace("http://example.ws", "ns");
        OMElement method = fac.createOMElement("c2fConvertion", omNs);
        OMElement value = fac.createOMElement("cValue", omNs);
        value.addChild(fac.createOMText(value, "32"));
        method.addChild(value);

        return method;
    }
}

 

结果为:

<ns:c2fConvertionResponse xmlns:ns="http://example.ws"><ns:return>89.6</ns:return></ns:c2fConvertionResponse>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值