Axis开发WebService(二)
发布时间:2020-12-17 00:37:27 所属栏目:安全 来源:网络整理
导读:当WebService需要传自定义的Object类型时,这篇博文就讲这个内容。 1、服务端程序 自定义的传参类:RequestModel .java和ResponseModel.java,这个类是一样,只是为了实验证明可以传送和返回自定义的类型。 package com.webservice.bean;public class Reques
当WebService需要传自定义的Object类型时,这篇博文就讲这个内容。
1、服务端程序 自定义的传参类:RequestModel .java和ResponseModel.java,这个类是一样,只是为了实验证明可以传送和返回自定义的类型。 package com.webservice.bean; public class RequestModel { private String name; private int age; private String[] items; private int[] prices; private boolean checked; public String getName() { return name; } public int getAge() { return age; } public String[] getItems() { return items; } public int[] getPrices() { return prices; } public boolean isChecked() { return checked; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setItems(String[] items) { this.items = items; } public void setPrices(int[] prices) { this.prices = prices; } public void setChecked(boolean checked) { this.checked = checked; } } package com.webservice.bean; public class ResponseModel { private String name; private int age; private String[] items; private int[] prices; private boolean checked; public String getName() { return name; } public int getAge() { return age; } public String[] getItems() { return items; } public int[] getPrices() { return prices; } public boolean isChecked() { return checked; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setItems(String[] items) { this.items = items; } public void setPrices(int[] prices) { this.prices = prices; } public void setChecked(boolean checked) { this.checked = checked; } }在上篇博文(Axis开发WebService)的基本上,Service.java添加doRequest2(RequestModel model)。 package com.webservice.service; import com.webservice.bean.RequestModel; import com.webservice.bean.ResponseModel; public class Service { public Service() { } public ResponseModel doRequest2(RequestModel model){ model.setChecked(true); ResponseModel _model = new ResponseModel(); _model.setAge(model.getAge()); _model.setChecked(true); _model.setItems(model.getItems()); _model.setName(model.getName()); _model.setPrices(model.getPrices()); return _model; } public String doRequest3(String str){ return str.toUpperCase(); } } 2.项目的WEB-INF目录deploy.wsdd的内容改成以下: <deployment xmlns="http://xml.apache.org/axis/wsdd/" xmlns:java="http://xml.apache.org/axis/wsdd/providers/java"> <service name="CheckOrder" provider="java:RPC"> <parameter name="className" value="com.webservice.service.Service"/> <parameter name="allowedMethods" value="doRequest2,doRequest3"/> <beanMapping qname="myNS1:RequestModel" xmlns:myNS1="urn:Service" languageSpecificType="java:com.webservice.bean.RequestModel"/> <beanMapping qname="myNS2:ResponseModel" xmlns:myNS2="urn:Service" languageSpecificType="java:com.webservice.bean.ResponseModel"/> </service> </deployment>其中节点beanMapping就是配置自定义的参数类型的。 3、执行deploy.bat,server-config.wsdd内容变化了,再执行WSDL2Java.bat,com.webservice.client下多了RequestModel .java和ResponseModel.java。 4、测试 @Test public void test2() throws ServiceException,RemoteException{ ServiceService serviceService = new ServiceServiceLocator(); Service service = serviceService.getCheckOrder(); RequestModel model = new RequestModel(); model.setAge(10); model.setName("LAM"); model.setItems(new String[]{"1","2"}); model.setPrices(new int[]{3,4}); ResponseModel _model = service.doRequest2(model); System.out.println(_model.getAge()+_model.getName()+_model.isChecked()); }??????????? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |