两个博客系统互通——从 blog 发表文章同步到 solo 系统

本贴最后更新于 2519 天前,其中的信息可能已经时过境迁

2018/8/24 18:42分

blog系统基本上是从0开始开发代码,包括vue,java,数据库设计。大概从2018/1/12开始

blog博客地址:http://yhmpianzi.imwork.net:9902

solo博客地址:http://yhmpianzi.imwork.net:8888/solo


两个博客地址都部署在thinkCenter上。通过花生壳做的域名:yhmpianzi.imwork.net。在电信猫上做的端口映射。以至于在外网能访问

以下是两个博客系统同步文章关键代码,比较low

blog同步关键代码:

//文章推送mysolo博客系统 JSONObject jsonObject= new JSONObject(); JSONObject jsonObject2= new JSONObject(); jsonObject.put(<span class="hljs-string">"userEmail"</span>, blogArticleWithBLOBs.getArticleAuthorEmail()); jsonObject2.put(<span class="hljs-string">"articleCommentable"</span>, <span class="hljs-keyword">true</span>); jsonObject2.put(<span class="hljs-string">"articleContent"</span>, blogArticleWithBLOBs.getArticleContent()); jsonObject2.put(<span class="hljs-string">"articleIsPublished"</span>, <span class="hljs-keyword">true</span>); jsonObject2.put(<span class="hljs-string">"articleSignId"</span>, <span class="hljs-string">"1"</span>); jsonObject2.put(<span class="hljs-string">"articleTags"</span>, blogArticleWithBLOBs.getArticleTags()); jsonObject2.put(<span class="hljs-string">"articleTitle"</span>, blogArticleWithBLOBs.getArticleTitle()); jsonObject2.put(<span class="hljs-string">"articleViewPwd"</span>, <span class="hljs-string">""</span>);<span class="hljs-comment">//文章查看密码默认为空</span> jsonObject2.put(<span class="hljs-string">"postToCommunity"</span>, <span class="hljs-keyword">true</span>); String abstractStr = blogArticleWithBLOBs.getArticleContent().length() &gt;= <span class="hljs-number">30</span> ? blogArticleWithBLOBs.getArticleContent().substring(<span class="hljs-number">0</span>, <span class="hljs-number">29</span>) : blogArticleWithBLOBs.getArticleContent(); jsonObject2.put(<span class="hljs-string">"articleAbstract"</span>, abstractStr); jsonObject.put(<span class="hljs-string">"article"</span>, jsonObject2); logger.info(<span class="hljs-string">"文章开始同步mysolo博客系统入参:"</span> + jsonObject.toString()); ​ // String resultStr = HttpUtils.post(CommonConst.mysoloSaveArticleUrl, jsonObject.toString()); // boolean resultStr = HttpClientUtils.post(CommonConst.mysoloSaveArticleUrl, jsonObject.toString(), 100000); String resultStr = MyHttpUtils.post(CommonConst.mysoloSaveArticleUrl, jsonObject.toString(), 100000); logger.info(<span class="hljs-string">"文章同步mysolo博客系统结果:"</span> + resultStr);</code></pre><p>solo文章同步保存接口定义:</p><pre style="max-width:100%;overflow-x:auto;"><code class="java hljs" codemark="1"> <span class="hljs-meta">@RequestProcessing</span>(value = <span class="hljs-string">"/console/saveArticleForBlog/"</span>, method = HTTPRequestMethod.POST) <span class="hljs-function"><span class="hljs-keyword">public</span> <span class="hljs-keyword">void</span> <span class="hljs-title">saveArticleForBlog</span><span class="hljs-params">(<span class="hljs-keyword">final</span> HttpServletRequest request, <span class="hljs-keyword">final</span> HttpServletResponse response, <span class="hljs-keyword">final</span> HTTPRequestContext context, <span class="hljs-keyword">final</span> JSONObject requestJSONObject)</span> <span class="hljs-keyword">throws</span> Exception </span>{ LOGGER.info(<span class="hljs-string">"创建文章:"</span> + requestJSONObject.toString()); <span class="hljs-keyword">final</span> JSONRenderer renderer = <span class="hljs-keyword">new</span> JSONRenderer(); context.setRenderer(renderer); <span class="hljs-keyword">final</span> JSONObject ret = <span class="hljs-keyword">new</span> JSONObject(); <span class="hljs-keyword">try</span> { String email = requestJSONObject.getString(User.USER_EMAIL) != <span class="hljs-keyword">null</span> ? requestJSONObject.getString(User.USER_EMAIL) : <span class="hljs-string">""</span>; JSONObject jsonObject = userRepository.getByEmail(email); LOGGER.info(<span class="hljs-string">"通过email得到的用户信息:"</span> + jsonObject.toString()); requestJSONObject.getJSONObject(Article.ARTICLE).put(Article.ARTICLE_AUTHOR_EMAIL, jsonObject.getString(User.USER_EMAIL)); <span class="hljs-comment">//保存文章</span> <span class="hljs-keyword">final</span> String articleId = articleMgmtService.addArticle(requestJSONObject); ret.put(Keys.OBJECT_ID, articleId); ret.put(Keys.MSG, langPropsService.get(<span class="hljs-string">"addSuccLabel"</span>)); ret.put(Keys.STATUS_CODE, <span class="hljs-keyword">true</span>); renderer.setJSONObject(ret); } <span class="hljs-keyword">catch</span> (<span class="hljs-keyword">final</span> ServiceException e) { LOGGER.log(Level.ERROR, e.getMessage()); <span class="hljs-keyword">final</span> JSONObject jsonObject = QueryResults.defaultResult(); jsonObject.put(Keys.MSG, e.getMessage()); renderer.setJSONObject(jsonObject); } }</code></pre><p><br></p><p>第一篇同步文章:</p><p>图1</p><p><img src="http://p57h8rh2b.bkt.clouddn.com/file/1535100584161.png" alt=""><br></p><p>图2</p><p><img src="http://p57h8rh2b.bkt.clouddn.com/file/1535100614913.png" alt=""><br></p><p><br></p> ​
  • 博客

    记录并分享人生的经历。

    273 引用 • 2389 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    可以考虑开始对接评论同步了 :)

  • someone

    大神来我这里看了啊,真的感觉到非常荣幸😋 ,我关注 solo 博客有好几年了,自己也搭建过低版本的用过,感觉挺好的,solo 越来越好!!!

推荐标签 标签

  • DNSPod

    DNSPod 建立于 2006 年 3 月份,是一款免费智能 DNS 产品。 DNSPod 可以为同时有电信、网通、教育网服务器的网站提供智能的解析,让电信用户访问电信的服务器,网通的用户访问网通的服务器,教育网的用户访问教育网的服务器,达到互联互通的效果。

    6 引用 • 26 回帖 • 532 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 640 关注
  • Ruby

    Ruby 是一种开源的面向对象程序设计的服务器端脚本语言,在 20 世纪 90 年代中期由日本的松本行弘(まつもとゆきひろ/Yukihiro Matsumoto)设计并开发。在 Ruby 社区,松本也被称为马茨(Matz)。

    7 引用 • 31 回帖 • 269 关注
  • Node.js

    Node.js 是一个基于 Chrome JavaScript 运行时建立的平台, 用于方便地搭建响应速度快、易于扩展的网络应用。Node.js 使用事件驱动, 非阻塞 I/O 模型而得以轻量和高效。

    139 引用 • 269 回帖 • 2 关注
  • JetBrains

    JetBrains 是一家捷克的软件开发公司,该公司位于捷克的布拉格,并在俄国的圣彼得堡及美国麻州波士顿都设有办公室,该公司最为人所熟知的产品是 Java 编程语言开发撰写时所用的集成开发环境:IntelliJ IDEA

    18 引用 • 54 回帖
  • API

    应用程序编程接口(Application Programming Interface)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    79 引用 • 431 回帖 • 3 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 710 关注
  • SEO

    发布对别人有帮助的原创内容是最好的 SEO 方式。

    36 引用 • 200 回帖 • 39 关注
  • LaTeX

    LaTeX(音译“拉泰赫”)是一种基于 ΤΕΧ 的排版系统,由美国计算机学家莱斯利·兰伯特(Leslie Lamport)在 20 世纪 80 年代初期开发,利用这种格式,即使使用者没有排版和程序设计的知识也可以充分发挥由 TeX 所提供的强大功能,能在几天,甚至几小时内生成很多具有书籍质量的印刷品。对于生成复杂表格和数学公式,这一点表现得尤为突出。因此它非常适用于生成高印刷质量的科技和数学类文档。

    12 引用 • 59 回帖
  • Anytype
    3 引用 • 31 回帖 • 28 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 442 关注
  • 正则表达式

    正则表达式(Regular Expression)使用单个字符串来描述、匹配一系列遵循某个句法规则的字符串。

    31 引用 • 94 回帖
  • SVN

    SVN 是 Subversion 的简称,是一个开放源代码的版本控制系统,相较于 RCS、CVS,它采用了分支管理系统,它的设计目标就是取代 CVS。

    29 引用 • 98 回帖 • 697 关注
  • flomo

    flomo 是新一代 「卡片笔记」 ,专注在碎片化时代,促进你的记录,帮你积累更多知识资产。

    6 引用 • 143 回帖
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 353 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 650 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • Solidity

    Solidity 是一种智能合约高级语言,运行在 [以太坊] 虚拟机(EVM)之上。它的语法接近于 JavaScript,是一种面向对象的语言。

    3 引用 • 18 回帖 • 445 关注
  • 禅道

    禅道是一款国产的开源项目管理软件,她的核心管理思想基于敏捷方法 scrum,内置了产品管理和项目管理,同时又根据国内研发现状补充了测试管理、计划管理、发布管理、文档管理、事务管理等功能,在一个软件中就可以将软件研发中的需求、任务、bug、用例、计划、发布等要素有序的跟踪管理起来,完整地覆盖了项目管理的核心流程。

    10 引用 • 15 回帖
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    246 引用 • 1338 回帖
  • RemNote
    2 引用 • 16 回帖 • 25 关注
  • 一些有用的避坑指南。

    69 引用 • 93 回帖
  • Visio
    1 引用 • 2 回帖 • 3 关注
  • 架构

    我们平时所说的“架构”主要是指软件架构,这是有关软件整体结构与组件的抽象描述,用于指导软件系统各个方面的设计。另外还有“业务架构”、“网络架构”、“硬件架构”等细分领域。

    142 引用 • 442 回帖
  • 京东

    京东是中国最大的自营式电商企业,2015 年第一季度在中国自营式 B2C 电商市场的占有率为 56.3%。2014 年 5 月,京东在美国纳斯达克证券交易所正式挂牌上市(股票代码:JD),是中国第一个成功赴美上市的大型综合型电商平台,与腾讯、百度等中国互联网巨头共同跻身全球前十大互联网公司排行榜。

    14 引用 • 102 回帖 • 313 关注
  • 负能量

    上帝为你关上了一扇门,然后就去睡觉了....努力不一定能成功,但不努力一定很轻松 (° ー °〃)

    89 引用 • 1251 回帖 • 392 关注
  • BND

    BND(Baidu Netdisk Downloader)是一款图形界面的百度网盘不限速下载器,支持 Windows、Linux 和 Mac,详细介绍请看这里

    107 引用 • 1281 回帖 • 38 关注