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:请求参数

  • 相关阅读:
    .NET 低版本调用高版本DLL问题
    防止SQL注入攻击
    Vue集成vue-pdf进行pdf预览
    VS2017序列号|Visual Studio 2017 激活码 序列号
    Java 使用word文档模板下载文件(内容为表格)
    接收sql语句的返回值
    ajax返回数据之前的loading等待
    在客户端展示本地图片
    C# 使用cookie实现登录
    C#请求http向网页发送数据,网页接收
  • 原文地址:https://www.cnblogs.com/libin6505/p/10675661.html
Copyright © 2011-2022 走看看