发布一个wsdl接口

时间:2022-10-14 17:54:04

1、新建接口类,并声明为webService

package com.glaway.ws.webservice;

import javax.jws.WebService;

@WebService
public class WsTest2 {
    
    
    
}

2、在类中新建接口方法,返回值都是String,是通过Json工具类将结果对象都封装成json字符串

package com.glaway.ws.webservice;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.jws.WebService;

import com.glaway.ws.bean.User;
import com.glaway.ws.util.JsonUtils;

@WebService
public class WsTest2 {
    
    //对象,封装成json字符串,否则报错
    public String getUser() {
        User user = new User();
        user.setName("科比");
        user.setAge(40);
        String json = JsonUtils.bean2Json(user);
        return json;
    }
    
    //Map,转换成json字符串
    public String getMap(String name,int age) {
        Map<String,String> map = new HashMap<String,String>();
        map.put("name", name);
        map.put("age", age+"");
        map.put("mes", "你的姓名是"+name+",年龄是"+age);
        String json = JsonUtils.map2Json(map);
        return json;
    }
    
    //List,转换成json
    public String listTest() {
        List<String> list = new ArrayList<String>();
        list.add("我");
        list.add("是");
        list.add("中");
        list.add("国");
        list.add("人");
        return JsonUtils.list2Json(list);
    }
    
    //List中存放map,转换成json
    public String listMapTest() {
        List<Map<String,String>> list = new ArrayList<Map<String,String>>();
        Map<String,String> map1 = new HashMap<String,String>();
        map1.put("a", "a1");
        map1.put("b", "b1");
        list.add(map1);
        
        Map<String,String> map2 = new HashMap<String,String>();
        map2.put("我", "我是谁");
        list.add(map2);
        
        return JsonUtils.list2Json(list);
    }
    
    //list中存放bean,转换成json
    public String listBeanTest() {
        User u1 = new User("1",25);
        User u2 = new User("2",8);
        List<User> list = new ArrayList<User>();
        
        list.add(u1);
        list.add(u2);
        
        Map map = new HashMap();
        map.put("code", "success");
        map.put("data", list);
        
        System.out.println("返回结果->"+JsonUtils.map2Json(map));
        
        return JsonUtils.map2Json(map);
    }
    
    
}

3、启动webService

package com.glaway.ws;

import javax.xml.ws.Endpoint;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

import com.glaway.ws.webservice.WsTest1;
import com.glaway.ws.webservice.WsTest2;

/**
 * Hello world!
 */
@SpringBootApplication
public class WebApplication
{
    public static void main( String[] args )
    {
        SpringApplication.run(WebApplication.class, args);
        
        /**
         * Endpoint.publish(url,service)
         * ip是发布接口的项目所在的ip
         * port:不可与发布接口的项目所在端口冲突,另起一个端口 
         * name:随便起
         * 
         * 1、端口号可以重复,也可以不重复,只要不与tomcat端口冲突即可
         * 2、ip可以是localhost、127.0.0.1、192.168.11.136,它的作用只是找到接口服务所在的电脑
         * 3、接口的放回类型只能是基本类型,如果想返回对象类型,比如Bean,Map,List等,则需要将对象转换成json然后返回字符串
         */
        
        //发布接口:基本类型数据
        Endpoint.publish("http://localhost:8080/test1", new WsTest1());
        
        //发布接口:实体类
        Endpoint.publish("http://localhost:8080/test2", new WsTest2());
        
    }
}

4、启动成功后,浏览器访问wsdl地址,结果如下

 发布一个wsdl接口