联调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启动
- env-->编辑环境变量:Path, C:\Program Files (x86)\IIS Express
- iisexpress.exe /config:C:\tfs0\03_Code\01_SourceCode.vs\config\applicationhost.config /siteid:4 /systray:true
- 在代码上打上断点,然后使用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());
参考资料
- Network modes in Parallels Desktop for Mac - Parallels KB
- spring StopWatch用法
- Transfer Learning: How to classify images using Tensorflow Machine Learning