• 使用postman测试dubbo服务层的方法


    下面的项目用的是servlet3.0架构

    接口(doubbo消费者项目和服务者项目共享的jar项目中):

    package serviceinvoke;
    
    import com.alibaba.dubbo.rpc.protocol.rest.support.ContentType;
    
    import javax.ws.rs.Consumes;
    import javax.ws.rs.POST;
    import javax.ws.rs.Path;
    import javax.ws.rs.Produces;
    import javax.ws.rs.core.MediaType;
    
    
    @Path("baService")
    public interface BaService {
    
        @POST
        @Path("addUser")
        @Consumes({MediaType.APPLICATION_JSON})
        @Produces({ContentType.APPLICATION_JSON_UTF_8})
        String addUser(String jsonString);
    }

    服务层:

    package serviceinvoke;
    
    
    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.stereotype.Service;
    
    
    import java.io.File;
    import javax.annotation.Resource;
    import java.io.FileInputStream;
    import java.io.FileNotFoundException;
    import java.io.IOException;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    import net.sf.json.JSONObject;
    
    @Service
    public class BaServiceImpl implements BaService {
        private static final Logger logger = LoggerFactory.getLogger(BaServiceImpl.class);
    
        @SuppressWarnings("unchecked")
        @Override
        public String addUser(String jsonString) {
            
              //取请求的jsonString中的requestObject转换为map
            Map<String, Object> requestMap = getJsonRequestObject(jsonString);
            String username;
            String password;
            username = String.valueOf(requestMap.get("username"));
            password = String.valueOf(requestMap.get("password"));
            //各种业务逻辑 todo
            
            return "这是一个dubbo的远程服务提供接口实现类";
        }
        
        /**
         * 
         * Description:获取报文中的requestObject
         * @param stringJsonn
         * @return
         */
        @SuppressWarnings({ "rawtypes" })
        public static Map getJsonRequestObject(String stringJsonn) {
            
            JSONObject strJson = JSONObject.fromObject(stringJsonn); 
            Map mapParam = strJson; 
            
            Map ContractRootMap = (Map)mapParam.get("ContractRootMap");
            Map SvcContMap = (Map)ContractRootMap.get("SvcCont");
            Map requestObject = (Map)SvcContMap.get("requestObject");
            
            return requestObject;
            
        }
    
    }

    postman测试:

    各个可选位置参数

    位置1:选择请求方式

    位置2:写请求地址

      除了 IP 地址,端口,项目名称后,就是 service 接口上的 path注解中的内容:

    位置3:因为我们是post请求,而且请求参数是个复杂的json串,所以,这里选 body,同理4的位置选择raw

    位置4:同位置3原因

    位置5:因为要发送json格式的参数,所以这里选 json,如果不选,send请求时会报415错误

    位置6:请求参数

  • 相关阅读:
    Html 中的Body 标签
    ROS-1.1-基本概念
    机器人的自由度
    机器人学(MATLAB机器人工具箱10.x)——4.1-雅克比矩阵(1)
    机器人学(MATLAB机器人工具箱10.x)——3.6-画字母
    机器人学(MATLAB机器人工具箱10.x)——3.5-特殊问题
    机器人学——3.4-轨迹规划
    OpenCV 3-2.4-工具函数
    OpenCV 3-2.3-辅助类
    OpenCV 3-2.2-进一步了解 OpenCV 基本数据类型
  • 原文地址:https://www.cnblogs.com/libin6505/p/10675661.html
Copyright © 2020-2023  润新知