dubbo服务是现在互联网公司比较流行的服务,一般用于内部系统间的调用。正常情况下服务消费方需要导入服务提供skeleton的jar包。因此需要对测试dubbo服务接口的人员需要一定的代码编写能力,需要写对应的消费方代码。当然这个很简单,但是为了更加简便和通用的使用dubbo接口,下面将把dubbo接口转成http接口暴露出去,这样测试人员可以直接使用postman等测试工具进行测试了。闲话不多说 开搞吧~~
思路:我们要接收http协议同时转化http成dubbo接口调用 并将返回结果再转成http返回给客户端。因此需要一个HttpServlet,主要作用是接收http请求,调用、转化。如下直接贴上 参考公司大神的代码
看下实现代码:
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.alibaba.dubbo.common.utils.IOUtils;
import com.alibaba.dubbo.config.ApplicationConfig;
import com.alibaba.dubbo.config.ReferenceConfig;
import com.alibaba.dubbo.config.RegistryConfig;
import com.alibaba.dubbo.rpc.service.GenericService;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
public class DubboToHttpServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
private static Logger lo