加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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());
    }
???????????

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读