zoukankan      html  css  js  c++  java
  • 使用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:请求参数

  • 相关阅读:
    任意不规则形状的图片剪裁 .
    C#图片处理示例(裁剪,缩放,清晰度,水印)
    C#对图片文件的压缩、裁剪操作初探
    CSS和SVG中的剪切——clip-path属性和<clipPath>元素
    Java中继承thread类与实现Runnable接口的区别
    Android学习系列(7)--App轮询服务器消息
    Android学习系列(15)--App列表之游标ListView(索引ListView)
    Android学习系列(20)--App数据格式之解析Json
    Android学习系列(22)--App主界面比较
    Android学习系列(23)--App主界面实现
  • 原文地址:https://www.cnblogs.com/libin6505/p/10675661.html
Copyright © 2011-2022 走看看