美文网首页
工厂模式实现webservice远程调用

工厂模式实现webservice远程调用

作者: 小民自愚 | 来源:发表于2019-11-05 20:28 被阅读0次

1.建立xml报文转换接口;

public interface XmlBeanConverter {

//xml转对象

T fromXml(String xml, Class targetClass, String encoding);

//对象转xml

 StringtoXml(Object xmlObject, String encoding);

}

2.建立公共的抽象类,2个方法,1个方法调用远程调用返回结果,一个方法报文解析返回对象:

public abstract class NbSmWebServiceInvoctionBuildimplements XmlBeanConverter {

@Autowired

  private NbWebServiceInvocationServiceNbWebServiceInvocationService;

  //远程调用返回xml报文

  public StringdoInvoke(String requestXml, String sjblx) {

long timeStart = System.currentTimeMillis();

      String responseXml =NbWebServiceInvocationService.innerInvoke(sjblx, requestXml);

      long timecost = System.currentTimeMillis() - timeStart;

      return responseXml;

  }

//解析xml报文转对象

  @Override

  public T fromXml(String xml, Class targetClass, String encoding) {

JaxbXmlBeanConverter jaxbXmlBeanConverter =new JaxbXmlBeanConverter();

      return jaxbXmlBeanConverter.fromXml(xml, targetClass, "utf-8");

  }

}

3.建立工厂类,工厂类只有一个方法,生产返回对象

public class Factory {

public Objectfactory(NbSmWebServiceInvoctionBuild builder,Object request,String sjblx,Class responseClass){

String toXml = builder.toXml(request, "utf-8");

      String fromXml = builder.doInvoke(toXml, sjblx);

      return builder.fromXml(fromXml,responseClass,"utf-8");

  }

}

4.每次使用只需要新建一个类继承NbSmWebServiceInvoctionBuild抽象类,实现toXml方法,:

public class NbSmWebServiceInvoctionJtBuild extends NbSmWebServiceInvoctionBuild {

@Override

  public StringtoXml(Object xmlObject, String encoding) {

return "xml";

  }

}

5.使用:

public class Test {

public static void main(String[] args) {

Factory factory=new Factory();

      NbSmWebServiceInvoctionBuild jtBuild=new NbSmWebServiceInvoctionJtBuild();

      Object request=new Object();

      Object respsonse = factory.factory(jtBuild, request, "sjlx", null);

      System.out.println(respsonse.toString());

  }

}

总结:封装了内部的调用细节,每次根据不同的请求参数,返回相应的处理结果;

相关文章

  • 工厂模式实现webservice远程调用

    1.建立xml报文转换接口; public interface XmlBeanConverter { //xml转...

  • 2020-04-07

    SpringBoot调用webservice webservice就是远程调用技术,也叫XML Web Servi...

  • dubbo和webservice 区别

    如何实现远程通信? 远程通信:Webservice、restful、dubbo 1、Webservice:效率不高...

  • SpringBoot整合webservice服务

    什么是webservice? 简单来说,webservice就是远程调用技术,也叫XML Web Service ...

  • Java Servlet实现Hessian接口调用

    Hessian是远程调用Http工具,提供了远程调用的功能。与WebService相比,hessian更简单,更快...

  • 工厂设计模式

    工厂模式 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式 工厂模式好处 工厂模式是我们最常...

  • 工厂模式

    什么是工厂模式? 实现了创建者和调用者分离,工厂模式分为简单工厂、工厂方法、抽象工厂模式 工厂模式好处 工厂模式是...

  • springboot2.0集成webservice

    1.什么是webservice 简单来说,webservice就是远程调用技术,也叫XML Web Service...

  • Gof23 工厂模式

    工厂模式: 实现了创建者和调用者的分离。 详细分类: 简单工厂模式 工厂方法模式 抽象工厂模式 面向对象设...

  • java工厂模式

    讲解三种工厂模式,并比较各自优缺点 简单工厂 调用: 工厂模式 工厂 产品 调用 抽象工厂模式 工厂 产品 调用 ...

网友评论

      本文标题:工厂模式实现webservice远程调用

      本文链接:https://www.haomeiwen.com/subject/wrrebctx.html