java

联调Mac上的Java程序和Windows虚拟机上的.net程序

2019-04-09  本文已影响3人  Java分布式架构实战

在最近的工作中,涉及到Java程序要调用.net程序。由于近几年已经放弃.net平台,对于windows, .net已经有些生疏了,在此记录一下这个联调过程。最点想说的是,请尽量保持公司的技术栈统一,请尽量选用Java平台,请尽量不要使用使用windows/.net/php。一家之言,不喜勿喷!

Mac电脑上的windows虚拟机配置

配置Mac和windows虚拟机使用都使用默认的Adapter

.net项目:编辑项目中的iisexpress配置

C:\tfs0\03_Code\01_SourceCode.vs\config\applicationhost.config

关键点在这里:==*:49617:*==

<site name=".ServiceHost(1)" id="4">
    <application path="/" applicationPool="Clr4IntegratedAppPool">
        <virtualDirectory path="/" physicalPath="C:\tfs0\\03_Code\01_SourceCode\02_Service\ServiceHost\.ServiceHost" />
    </application>
    <bindings>
        <binding protocol="http" bindingInformation="*:49617:*" />
    </bindings>
</site>

.net项目:使用iisexpress启动

  1. env-->编辑环境变量:Path, C:\Program Files (x86)\IIS Express
  2. iisexpress.exe /config:C:\tfs0\03_Code\01_SourceCode.vs\config\applicationhost.config /siteid:4 /systray:true
  3. 在代码上打上断点,然后使用Visual Studio附加到进程上

Java项目:Adapter项目配置Java端服务启动参数

--xxx.adapter.namespace=jamesfu
--xxx.biz.jc-json-rpc-url=http://192.196.390.898:49617/json.rpc

Java项目:前台网站项目增加参数,使OpenFeign,Zull代理访问本机的服务

--xxx.adapter.namespace=jamesfu --zuul.routes.adapter.url=http://localhost:8016

Spring StopWatch的使用

System.out.println("start time" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS").format(new Date()));
        StopWatch stopWatch = new StopWatch();

        stopWatch.start("convertCondition");
        SystemProjectSearchModel model = WrappedBeanCopier.copyProperties(searchDTO, SystemProjectSearchModel.class);
        // 的pageNo从0开始
        if (model.getPageNo() > 0) {
            model.setPageNo(model.getPageNo() - 1);
        }
        model.setCommonStatus(1);
        stopWatch.stop();
        stopWatch.start("call rpc");
        QueryResultModel<SystemProjectModel> queryResult = getProjectRpc().queryProject(model, new ArrayList<>());
        stopWatch.stop();
        stopWatch.start("convertQueryResult");
        List<SystemProjectDTO> rows = WrappedBeanCopier.copyPropertiesOfList(queryResult.getData(), SystemProjectDTO.class);
        Pagination<SystemProjectDTO> pagination = Pagination.create(rows, searchDTO);
        pagination.setTotal(queryResult.getTotal());
        stopWatch.stop();

        System.out.println(stopWatch.prettyPrint());

参考资料

关注公众号交流学习

关注Java分布式架构实战, 持续精进 联系我,学习交流
上一篇下一篇

猜你喜欢

热点阅读