世界快报:java命令行中的DstRpcServer怎么运行?操作步骤
1. 问题描述
(资料图片)
我们的项目是基于端到端通信的。分为客户端、服务端。项目大致分为5个模块。 server、client、core、common以及test模块。 显而易见,server是服务端模块,client是客户端模块,core是项目核心数据结构模块,common是公共类模块(比如一些工具类),test模块从各个子项目抽出来的作为一个单独的test模块。 项目地址:DistKV Project 欢迎star、fork以及contributing。现在的问题是:需要在test模块中测试跟服务端的通信,看得到的结果是否符合预期。 最简单的做法就是:在测试的时候,我们在server模块,通过IEDA点击绿色的Run按钮,就可以启动服务端了,然后在test模块运行测试代码,完成了测试之后,我们再去server模块Stop掉服务端。 这样做存在的问题在于:每次测试都要Run一下服务端的代码,不麻烦? 而且我们运行mvn test命令的时候,应该不需要关心server模块的东西。这称为"解耦合"?
2. 解决办法
我们先考虑在命令行中应该怎么去跑一个程序。简单的Hello World大家都会跑,无非就是先用javac编译,再java运行。但是Hello World不需要依赖其他jar包,所以这样是可行的。 而我们的服务端DstRpcServer.java文件里面依赖了很多第三方包,所以我们单纯的进入到server模块的DstRpcServer.java文件所在路径,执行下面两条语句是不行的。 javac DstRpcServer.java以及 java DstRpcServer原因有两个:
第一个是依赖很多第三方jar包。第二个是因为该路径不是classpath。
注:maven项目的classpath一般在模块下的target/classes下面。 因此,如果我们要在命令行中运行这个DstRpcServer.java,应该怎么运行? 第一步:需要将相关依赖打包成一个jar包,设置DstRpcServer为入口主类。此阶段只要借助以下插件完成。
maven-assembly-pluginjar-with-dependenciesorg.dst.server.service.DstRpcServermake-assemblypackagesingle
第二步:运行 java -classpath C:\Users\Administrator\Desktop\gitProject\dst\server\target\dst-server-1.0-SNAPSHOT-jar-with-dependencies.jar org.dst.server.service.DstRpcServer此处的classpath是我本地项目的路径。类名应该是完整类名,即包名+类名。 但我们怎么在执行mvn test的时候让其执行呢。 完整解决办法:我们在test模块中,利用ProcessBuilder类去新创建一个进程去执行这个命令。执行完之后再销毁该进程。 需要注意的点是:我们需要根据每个人电脑的上的项目路径来动态获取classpath。
public class TestUtil { private static final Logger LOGGER = LoggerFactory.getLogger(TestUtil.class); //get the relative path private static final String SUFFIX_JAR_DIR = "server" + File.separator + "target" + File.separator + "dst-server-1.0-SNAPSHOT-jar-with-dependencies.jar"; private static Process rpcServerProcess = null; /** * @param command the command to start rpc server using a new process. */ private static void executeCommand(Listcommand) { try { LOGGER.debug("Executing command: {}", String.join(" ", command)); ProcessBuilder processBuilder = new ProcessBuilder(command).redirectOutput(ProcessBuilder.Redirect.INHERIT) .redirectError(ProcessBuilder.Redirect.INHERIT); rpcServerProcess = processBuilder.start(); // TODO(qwang): Refine this wait rpcServerProcess.waitFor(1, TimeUnit.SECONDS); } catch (Exception e) { rpcServerProcess.destroy(); throw new RuntimeException("Error executing command " + String.join(" ", command), e); } } public static void startRpcServer() { final File userDir = new File(System.getProperty("user.dir")); // get the absolute path final String jarDir = userDir.getParent() + File.separator + SUFFIX_JAR_DIR; final ListstartCommand = ImmutableList.of( "java", "-classpath", jarDir, "org.dst.server.service.DstRpcServer" ); executeCommand(startCommand); } public static void stopRpcServer() { rpcServerProcess.destroy(); }}
然后在测试代码中调用该类的方法。
public class DstRpcServerTest { @Test public void testRpcServer() { //start the server TestUtil.startRpcServer(); RpcClientOptions options = new RpcClientOptions(); options.setProtocolType(Options.ProtocolType.PROTOCOL_BAIDU_STD_VALUE); options.setWriteTimeoutMillis(1000); options.setReadTimeoutMillis(1000); options.setMaxTotalConnections(1000); options.setMinIdleConnections(10); String url = "list://127.0.0.1:8082"; RpcClient client = new RpcClient(url, options); DstStringService stringService = BrpcProxy.getProxy(client, DstStringService.class); // Test string put request DstServerProtocol.StringPutRequest stringPutRequest = DstServerProtocol.StringPutRequest.newBuilder() .setKey("k1") .setValue("v1") .build(); DstServerProtocol.StringPutResponse stringResponse = stringService.strPut(stringPutRequest); Assertions.assertEquals("ok", stringResponse.getResult()); // Test string get request DstServerProtocol.StringGetRequest strGetRequest = DstServerProtocol.StringGetRequest.newBuilder() .setKey("k1") .build(); DstServerProtocol.StringGetResponse stringGetRequest = stringService.strGet(strGetRequest); Assertions.assertEquals("v1", stringGetRequest.getResult()); client.stop();// stop the server TestUtil.stopRpcServer(); }}
标签:
相关推荐:
精彩放送:
- []部门组织结构及分工设想——技术总监、技术运维组
- []天天快看:多达60个网站 免费下载免费的3D模型
- []【天天速看料】NET是什么?netFramework是一个品牌商标推出的?
- []当前关注:Java的类型是什么?byte字节型占一个字节(8bit)的数据范围
- []【天天新视野】数学书中求多项式系数的问题 编程上怎么办?
- []全球即时:如何一次性删除全部页眉页脚?Word中删除全部页眉页脚的方法
- []最新资讯:华电、华润等7家企业签约阿拉善腾格里沙漠12GW风光基地项目
- []分享100个有趣的python项目 值得收藏
- []低温地区新能源汽车能耗逐年下降
- []当前热点-世界上最大的会计事务所——Pricewaterhouse
- []四年一遇:ngix+rtmp+ffmpeg的直播效果
- []最新资讯:3MW/6MWh!粤北地区首个用户侧智能组串式储能项目成功投运
- []焦点快看:【Linux操作系统】系统调用和库函数编程基础知识
- []当前快报:重庆:争夺西部第一机场?
- []环球要闻:2.5万吨!华友钴业子公司广西巴莫首批正极材料产品下线
- []硅片反弹!中环硅片全线涨价0.82~1.15元/片 ,最高涨幅近15.5%!
- []热点在线丨春秋航空:疯狂
- []【速看料】凤形股份:为保证所有投资者平等获悉公司信息,公司将在各期定期报告中披露对应时点的股东人数信息
- []滨江集团:截至2023年1月31日,公司合并普通账户和融资融券信用账户的在册股东总户数为31303户
- []金科联盟解体
- []有研粉材:定期报告对应时点之外的股东人数不属于规则规定的强制信息披露范畴
- []最新:财面儿丨首开股份:近期为子公司提供财务资助约3亿元
- []每日短讯:房企关注函+1!阳光城巨额亏损被深交所“盯”上
- []全球视点!财面儿丨保利置业:1月份合约销售额49亿元 同比增长105%
- []珠城科技:公司的产品主要应用于消费类家电、智能终端等,同时以汽车领域作为公司未来的重要发展方向
- []焦点短讯!农民进城买房,一套补贴5万!河南一地启动购房促销活动
- []【天天聚看点】盛新锂能发行GDR并在瑞交所上市获批 2022年净利同比预增超5倍
- []豪掷31亿元!英联股份拟投建锂电复合铜箔/铝箔生产线
- []快讯:中金货币金融研究:1月信贷投放规模可能达到4.8万亿元 规模或创记录
- []储能有望延续高景气度 2023年或成为爆发之年
- []全球视点!银河证券:A股市场进入颠簸期 配置沿几条主线
- []实时:光大证券:半固态电池应运而生 抢占下一代锂电技术制高点
- []湖北省:1GW新型储能示范项目申报启动,锂电项目不参与
- []环球热推荐:春节出游潮退潮后,处处是“坑”
- []关注:储能安全新国标正式发布!储能消防市场将迈向百亿级空间
- []【全球报资讯】近1.6万次!基金经理、机构忙调研
- []天天播报:佳源国际控股:进一步延长交换要约届满期限至3月6日
- []税后工资8000税前是多少?年收入多少要交个人所得税?
- []【天天新视野】西安未央区即将面向全市发放共计1000万元电子消费券
- []焦点速读:一晚七家公司被调查,有公司掩埋凭证,挖出9米宽5米深大坑!数据特区概念爆发
- []全球即时:最新龙虎榜:机构买入润和软件超8000万,知名游资买入广博股份
- []平均工资是税前工资还是税后工资?平均工资是怎么算的?
- []2022平均工资怎么计算?2022年度社会平均工资怎么算?
- []世界热点评!谁是2022旅游出行“预亏王”?
- []脑梗“最爱”1黄,不是花生,平时敞开吃,血脂乖乖降,脑梗不敢放肆
- []全球看点:62度电池跑320公里,4秒内破百,Everrati推出保时捷911纯电版
- []如何给鲜玉米保鲜储存 玉米保鲜储存方法
- []全球快消息!F1威廉姆斯车队发布2023赛季新车涂装
- []今日热闻!建业地产1月合同销售额28.71亿元 同比增长43%
- []环球热资讯!上海现代农业产业园(横沙新洲)规划公布 2035年园区总产值超百亿
- []热门看点:北京数据特区发酵 多家公司摩拳擦掌备战
- []环球时讯:免押金、佣金打折!北京为返工租客筹集53万套优惠房源
- []环球快播:深圳:降低企业用房成本
- []海南推动土地节约集约利用:控制新增建设用地,保障生活用地
- []数码视讯:2月3日公司高管郑海涛减持公司股份合计4.68万股
- []观焦点:天秦装备:2月3日公司高管张澎、王兆君减持公司股份合计11万股
- []世界视点!炼石航空:2月3日公司高管张政减持公司股份合计10万股
- []绿城集团2023年首月总合约销售135亿元 同比下降7.53%
- []世界资讯:中际旭创:2月3日公司高管王军减持公司股份合计10000股
- []焦点快报!时来天地皆同力 2023年或迎来“戴维斯双击”——访重阳投资董事长王庆
- []微头条丨八大券商主题策略:超级快充时代来临!远期市场空间超千亿 充电桩概念风起云涌
- []焦点热门:北交所强势开局 私募看好今年投资机会
- []今日观点!中信证券:内资开始接力外资 成长风格将持续占优
- []当前简讯:灰姑娘的故事简介50字_灰姑娘的故事简介
- []世界实时:土地周报 | 供求价持续低位运行,流拍率接近20%(01.30-02.05)
- []世界信息:深圳二手房交易量呈现快速恢复态势
- []引力传媒:2月3日公司高管罗衍记、李浩减持公司股份合计40万股
- []哈尔滨:鼓励在哈金融机构加大房地产领域信贷投放
- []奇安信:2月1日至2月2日左文建减持公司股份合计1.4万股
- []【环球新要闻】新房周报 | 12城调控放松、多地下调利率,成交回升(01.30-02.05)
- []环球微动态丨资本月报|融资环境有所改善,房企配股较为积极 (2023年1月)
- []今日视点:理工导航:2月3日至2月6日公司高管高志峰增持公司股份合计1.01万股
- []世界今日讯!环球旅讯发力商旅&MICE赛道:推出商旅研习社及年度活动规划
- []全球信息:中交地产:湖南华夏完成减持1.21%股份 重庆渝富减持股份达到1%
- []世界快报:公共车辆全面电动化试点启动,利好充电服务商
- []微信加人限制如何解除_微信加人限制怎么解除
- []环球速讯:由于后者资金问题 大唐集团终止出售厦门商管公司予广西吉顺隆
- []每日观察!天虹股份变更公司签字注册会计师及质量复核人员
- []华侨城A:公司唐镇项目经上海市张江管委会、工商监督部门调查已判定没有违规开发和虚假宣传
- []【全球时快讯】武汉:动态调整住房限购范围 住房限购区域购房的居民家庭可新增一个购房资格
- []世界球精选!财面儿|融信中国1月合约销售额约9.95亿元
- []实时焦点:磁谷科技:公司目前在手订单充足,业务拓展持续稳健进行
- []财面儿丨雅居乐:1月预售金额合计为人民币64.4亿元
- []天天微头条丨财面儿丨金地商置:1月份合约销售额22.96亿元
- []德赛西威:公司严格按照相关法规要求进行财务数据的发布
- []当前资讯!山东新年“1号文件”力促经济复苏 一季度重点项目完成投资6000亿元以上
- []世界焦点!财面儿丨力高集团:1月份合约销售额13.23亿元
- []环球热资讯!金地商置1月合约销售额22.96亿元 同比减少约59.68%
- []中国奥园:以5.84亿元出售珠海翠微项目60%股权
- []全球简讯:长沙:截至今年1月底,盘活存量房1.28万套
- []天天观天下!开开实业:公司是以中医药流通、中医药学服务(中医问诊服务)和服装批发、零售为主营业务
- []哈尔滨:非哈市户籍在哈购新房可享万元补贴
- []美吉姆:公司目前未应用过该软件
- []环球最新:昆船智能:截至2023年1月30日我公司股东总数为29533户
- []天天热议:招商局置地:余志良辞任总经理,黄竞源获委任
- []世界快资讯:思安云创成功签约深能集团智慧能源监控平台及高级应用研发项目
- []储能业务持续向好 南都电源预计2022年扭亏为盈
- []环球通讯!2022锂钴价格背道而驰,2023供应过剩延续钴价继续滑落?
- []观速讯丨业绩持续逆天,还在持续大爆发的龙头,关键已经不贵了
- []一个鼻孔通气的生肖_一个鼻孔通气的危害
- B站注册资本增幅400%至5亿 目前由陈睿全资持股
- 光源资本出任独家财务顾问 沐曦集成电路10亿元A轮融资宣告完成
- 巨轮智能2021年上半年营收11.24亿元 期内研发费用投入增长19.05%
- 红枣期货尾盘拉升大涨近6% 目前红枣市场总库存约30万吨
- 嘉银金科发布2021年Q2财报 期内净利润达1.27亿元同比增长208%
- 成都银行2021上半年净利33.89亿元 期内实现营收同比增长17.27亿元
- 汽车之家发布2021年第二季度业绩 期内新能源汽车品牌收入增长238%
- 中信银行上半年实现净利润290.31亿元 期末不良贷款余额706.82亿元
- 光伏概念掀起涨停潮交易价格创新高 全天成交额达1.29亿元
- 上半年生物药大增45% 关键财务指标好转营收账款持续下降
- 隆基绿能:拟向全资子公司增资20亿元 推进29GW高效单晶电池项目
- 接入光伏、储能、充电桩等更省事 湖北首个“源网荷储”新型配电网试点建成
- 视讯!孚能科技引领全球动力软包创新 SPS大软包超级电池“攻城掠地”
- 热文:复地(集团)10亿债券将于2月14日兑付及摘牌 票面利率5.60%
- 环球观热点:提供适配房源53万套 北京推出惠民租房服务平台
- 聚焦:【互动掘金】国脉科技:将积极研究ChatGPT与现有技术的融合
- 华瑞股份:截止2023年1月31曰,公司股东人数为10590户
- 焦点速看:中衍期货:美国非农表现强劲给金银压力
- 焦点快播:华测检测:公司回购方案的有效期至2023年3月13日,会按照回购方案积极推进
- 世界新消息丨冠昊生物:本维莫德乳膏其他适应症的研发有序推进中,公司的研发项目进展情况,敬请查阅公司定期报告
- 焦点热讯:武汉:在住房限购区域购房的居民家庭可新增一个购房资格
- 快报:武汉:新出让土地可按照不低于起始价的10%确定竞买保证金
- 环球即时看!武汉:具备条件的大型购物中心、商业综合体和商业街区可设置外摆
- 焦点要闻:印度狂买俄油符合西方利益?美国官员:价格上限机制已落实到位
- 科润新材料完成C轮2.4亿融资 全氟离子膜已应用于钒电池等领域
- 今日快看!*ST必康拟增资子公司并设立孙公司 布局锂电池、电池材料产业
- 资讯推荐:动力电池铝箔产销量同比大增 鼎胜新材2022年净利同比预增逾两倍
- 天天微头条丨电池化学品销量增长 新宙邦2022年营收约96.61亿
- 110亿元!志存锂业拟在新疆阿勒泰投建碳酸锂及正极材料项目
- 名师讲坛 | “二十四史”视角下的《元史》
- 世界新动态:深圳发布金融科技专项发展规划 打造国际影响力金融科技中心城市
- 环球视讯!都城伟业集团接盘鲁能集团转让的郑州鲁能置业100%股权
- 当前热门:2月6日英可瑞涨停分析:充电桩,氢能源/燃料电池,高铁轨交概念热股
- 2月6日江南化工涨停分析:人工智能,民爆,手势识别概念热股
- 环球播报:2月6日汉马科技涨停分析:垃圾分类,氢能源/燃料电池,重卡概念热股
- 处四会五达之地,融人文商业之机——百年阪急的中国宁波之旅
- 世界最新:江阴银行:我行严格遵守监管部门相关规定,目前未开展互联网存款业务
- 【新要闻】衢州开化县一宗商住地因宗地使用条件变更终止出让 起价1.73亿
- 每日速讯:飞行汽车完成今年首飞!万亿市场何时开启?
- 即时:江苏常州金坛盐穴压缩空气储能电站—— 赋能地下盐穴 助力高效用能
- 产销量暴增300%!产线昼夜不停!铜箔为什么这么火?
- 焦点讯息:突发!锂电池着火引发火灾致4死3伤 !
- 天天新消息丨3MW/6MWh!粤北地区首个用户侧智能组串式储能项目成功投运
- 3GWh电芯采购 | 浙商中拓与上海兰钧签订战略合作协议
- 最新消息:上海宝龙实业发展15亿元中票获反馈
- 环球看点!中公教育:根据深交所相关规则,符合需要披露年度业绩预告的情形的公司应在2023年1月31日前进行预告
- 全球看点:中交地产三笔中票项目状态更新为“反馈中” 金额共计22亿元
- 温州生态园开发建设5.4亿元私募债更新为“已反馈”
- 每日热点:【BT金融分析师】瑞幸咖啡或在2023年重新上市,分析师称新店开张速度令人瞩目
- 福州台江区37个老旧小区改造项目启动招标 总投资1.38亿元
- 广州:至2035年推进城市更新约300平方公里 推进旧改项目297个
- 每日快报!奥维通信:公司目前没有涉及相关业务
- 今热点:航发科技:公司将严格执行相关法律法规、公司信息披露制度和内幕信息知情人登记制度的规定
- 焦点消息!两天1500元,租车爆单了
- 能链智电与开瑞新能源达成战略合作 加速商用车电动化进程
- 动态焦点:2019双子座流星雨极大时间_2019双子座流星雨
- 环球热门:山东威海:首套房公积金贷款首付比例下调至20%
- 上海推出今年第一批次集中供应楼盘 涉6958套房源
- 当前热点-内蒙古2023年计划实施重点项目3168个 总投资3.2万亿元
- 【环球快播报】“两会”前多地密集出台稳楼市政策,一二线城市有望率先复苏
- 世界视点!总投资1208亿元 天津滨海新区122个春季重点项目启动开工
- 东南电子:公司主要产品包括 KW 系列微动开关、WS 系列微动开关、MS 系列微动开关等
- 青蛙王子再次荣获企业标准“领跑者”
- 今日热门!酷炫!3D视频中的连南你看过吗?
- 一张图:黄金原油外汇股指"枢纽点+多空占比"一览(2023/02/06周一)
- 天天观焦点:【华安期货】石油化工2月5日周报:复工预期不足,聚烯烃高位回落
- 全球今日讯!山东东营:二套房公积金贷款最高可贷60万元 首付比例三成
- 天天头条:美联测量:港铁小蚝湾1期商住项目估值料逾52亿港元
- 环球观速讯丨山东威海:购买首套自住房公积金贷款首付比例下调至20%
- 威海:首套自住住房公积金贷款首付比例下调至20%
- 每日报道:焦作万方:公司年度报告根据深圳证券交易所相关填报要求进行填报披露,不存在应披露而未披露信息
- 当前热讯:市建局韦志成:香港观塘流标商业地研增住宅元素
- 全球焦点!孚日股份:关于公司股权转让情况,届时请关注公告;公司锂电池电解液添加剂项目正在紧张有序的推进
- “天选之子”中国出境旅行团:从吊车尾到拯救全球旅游
- 仟那集团CEO陈坤峰:低调做酒店,高调做产品
- 团队出境游今日重启,携程:节后一周预订量大增超3倍
- 天天热门:深圳出台措施扩大消费刺激中小微企业市场需求 鼓励发放消费补贴
- 【热闻】前财长萨默斯:美国经济软着陆可能性增加 但仍未脱离困境
- 绝不降价的蔚来“折腰”了?这并不是新势力的最优解!
- 北辰世纪中心28.61亿ABS获上交所受理
- 重点聚焦!保利挂牌转让12家与碧桂园合作项目公司股权 合计近23亿元
- 今日热文:宜春天虹购物中心拟于2月6日闭店 损失合计约3500万元
- 每日短讯:黄金市场分析:1825-23美元附近可能成为黄金买家的最后防线
- 当前通讯!港财政司陈茂波︰今年本港经济肯定较去年好
- 天天短讯!国信期货早评:担心美联储可能继续加息,油价大幅回调
- 今日快讯:石油和天然气需求又迎新利好?IEA:中国经济反弹力度料超预期
- 今日最新!美联新材:截止至2023年1月31日,公司股东总户数24,832户,截至2月1日的数据无法查询
- 世界信息:西藏天路:根据市场竞争压力和国企改革要求,公司实施了股权激励
- 2月6日汇市观潮:欧元、英镑和日元技术分析
- 【全球热闻】广东各地多措并举确保春季开学顺利
- 热讯:年少气盛的反义词是什么?年少气盛是什么意思?
- 三相电度表怎么看度数?家用电器使用注意事项有哪些?
- 当前视讯!京韵大鼓三大流派是什么?有什么艺术特征?
- 天天短讯!汽车暖风机是什么?汽车暖风机的作用是什么?
- 什么是电压差动保护?电压差动保护怎么理解?
- 当前消息!一两等于多少克?两和克之间怎么换算?
- 楼梯踏步防滑条怎么做?楼梯踏步防滑条做法是怎样的?
- 【世界速看料】礼香的真实结局是什么?礼香的真实剧情介绍?
- 大发地产:1月合同销售金额约2.51亿元
- 【天天速看料】银城国际控股:1月合约销售额约为4.84亿元
- 珈伟新能:公司的新能源电力业务包括整合并建立项目开发与运维、EPC总承包、电站资产运营这三大业务
- 世界今热点:【东海期货2月6日产业链日报】能化篇:弱现实担忧增加,原油价格回调
- 教资考试成绩什么时候公布?教师资格证考试笔试多少分及格?
- 天天百事通!书香气质女孩名字有哪些?书香气质女孩名字大全?
- 全球微头条丨2月6日贵金属板块跌幅达4%
- 万达商业拟发行3年期美元高级无抵押债券 初始指导价12.5%区域
- 每日头条!怡合达:截至2023年1月31日,公司股东总数为7,724户
- 中信建投期货2月6日早间交易策略
- 热点在线丨广哈通信:您可致电020-35812869,将有工作人员为您解
- 大连旅顺水师营5175.95平米宅地使用权挂牌交易截止日期延后