使用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:請求參數

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM