postman测试doubbo接口实例
下面的项目用的是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:请求参数


浙公网安备 33010602011771号