美文网首页java
联调Mac上的Java程序和Windows虚拟机上的.net程序

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

作者: Java分布式架构实战 | 来源:发表于2019-04-09 07:27 被阅读3次

    在最近的工作中,涉及到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分布式架构实战, 持续精进 联系我,学习交流

    相关文章

      网友评论

        本文标题:联调Mac上的Java程序和Windows虚拟机上的.net程序

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