小薇聊天机器人用 MyEclipse 部署上线 SOP 教程

本贴最后更新于 3179 天前,其中的信息可能已经渤澥桑田

#背景
近期把 D(丁亮)上线的小薇聊天机器人玩 HIGH 了。由于 D 写的文档还没有特别详细,因此本着开放、自由的分享的精神,在此就用 SOP 的方式,给小白们普及一下小薇是如何一步步部署上线。
#SOP
##一、下载小薇源代码
1.首先登录“黑客派”论坛 https://hacpai.com/
2.找到 D 的帖子(D 的头像是路飞,很好认),点击路飞的头像
QQ 截图 20160729232728.png
3.找到小薇的帖子
QQ 截图 20160729232937.png
4.点击“ XiaoV ”的链接,定位到 GitHub
QQ 截图 20160729233037.png
5.在 D 的 GitHub 上 ,点击 Clone or download 这个按钮
QQ 截图 20160729233224.png
6.点击 Download ZIP 这个按钮
QQ 截图 20160729233409.png
##二、导入小薇的工程文件
7.把 xiaov_master 压缩包解压到你的 MyEclipse 工程目录下
QQ 截图 20160729234012.png
8.然后打开 MyEclipse
(什么?你没有 MyEclipse ?那么再见!)
QQ 截图 20160729234347.png
9.在 MyEclipse 中的 File 菜单中点击 Import
未标题-1.jpg
10.在 Import 选项卡的 Select an import source 中输入 maven ,并选择 Exisiting Maven Projects
QQ 截图 20160729235019.png
11.在下一步操作中,点击 Browse... 按钮,将目录定位到 JAVA 工程中的 xiao-master 上并点击 Next 按钮
QQ 截图 20160729235333.png
12.看到这个画面后直接点击 Finish
QQ 截图 20160729235526.png
13.然后你会看到右小角的滚动条在跑呀跑,等等吧亲!去泡杯茶,或者喝杯咖啡。
QQ 截图 20160729235701.png
14.跑完后,你会发现,小薇的工程目录前面有个感叹号,一定是哪里出了问题
QQ 截图 20160729235948.png
15.右键点击这个工程,选择 Build Path -> Configure Build Path...
QQ 截图 20160730000124.png
##三、安装 JDK1.7 环境
16.可以看到原来是没有 jdk1.7 ,别急,点这里下载,密码:k4ms
QQ 截图 20160730000349.png
17.装一下 jdk1.7 ,很快的哈
QQ 截图 20160730000935.png
18.装好了,那么我们再回到 Build Path -> Configure Build Path... ,点击 Libraries 选项卡,再点击 Edit...
QQ 截图 20160730001114.png
19.选择 Alternate JRE ,再点击 Installed JREs...
QQ 截图 20160730001236.png
20.点击 Add...
QQ 截图 20160730001348.png
21.选择 Standard VM ,点击 Next
QQ 截图 20160730001438.png
22.将 Directory... 定位到刚才 jdk1.7 的安装目录下,再点击 Finish
QQ 截图 20160730001603.png
23.回到前一个对话框,选择 jdk1.7 ,点击 OK
QQ 截图 20160730001800.png
24.再回到前一个对话框,点击 Execution environment (这时可以看到已经有 jdk1.7 的环境了),再点击 Finish 按钮,OK
QQ 截图 20160730001913.png
##三、部署小薇服务
25.这时候可以看到,小薇的工程已经没有报错了
QQ 截图 20160730002107.png
26.为了确保小薇依赖的包都准确无误,我们可以在工程目录上点击右键,然后 Run As -> Maven install
QQ 截图 20160730002438.png
27.可以看到 Maven 在控制台输出了 BUILD SUCCESS 的信息,OK
QQ 截图 20160730002655.png
28.接下来,我们要把小薇部署到 Tomcat 上,点击 MyEclipse 上的 Deploy 按钮,在弹出的对话框中点击 Add 按钮
PS:D 用的是 Jetty,但我还是比较习惯用 Tomcat 呵
QQ 截图 20160730002849.png
29.选择 MyEclipse Tomcat ,点击 Finish
QQ 截图 20160730003122.png
30.回到上一个对话框,可以看到 Successfully deployed. 的提示,点击 OK
QQ 截图 20160730003258.png
##四、运行小薇服务
31.接下来,点击 MyEclipse 上服务器按钮旁边的小三角形,选择 MyEclipse Tomcat -> Start
QQ 截图 20160730003453.png
32.可以看到,控制台中输出了小薇启动的信息
QQ 截图 20160730003645.png
33.找到控制台告诉你的二维码所在的目录,打开,用手机 QQ 扫它吧
QQ 截图 20160730003829.png
34.这时候,你看到了控制台输出了一堆错误信息
QQ 截图 20160730004120.png
35.别着急,根据提示,我们打开 w.qq.com,先扫扫看吧
QQ 截图 20160730004002.png
36.可以正常登录网页版 QQ,那么,退出吧!
QQ 截图 20160730004533.png
37.再回到 MyEclipse ,把服务跑起来!这时候发现小薇已经可以读取到 QQ 群号了
QQ 截图 20160730004737.png
38.什么?还是有出错信息?
QQ 截图 20160730004907.png
##五、开始调戏小薇
39.安啦!这是正常的,只要有人敢在群里叫小薇,她就会开始瞎扯淡啦!不信你看!
QQ 截图 20160730005141.png
40.同时你也可以打开小薇的 QQ,看她实时的扯淡能力啦,QQ 的界面我就不截图了
PS:你眼神很犀利,看到了 1202 的返回错误码,这个是因为我的小薇被人禁言了- -!!
最后,如果需要修改小薇的名称,可以在工程中的 resources 目录下,找到 xiaov.properties ,打开后修改 qq.bot.name 的值,这个就是小薇的名称啦!
QQ 截图 20160730005418.png
##六、写在最后
最后的最后,请大家一定要尊重 D 的劳动成果,小薇有一个随机函数,偶尔会发一下“黑客派”论坛的广告,请大家务必不要屏蔽!

现在就去访问黑客派论坛!

--END--

  • 黑客派

    黑客派是 B3log 开源社区的线上论坛,这里主要汇聚了程序员和设计师。HacPai 分别取 Hacker / Painter 的头三个字母组成,源自《黑客与画家》。

    359 引用 • 4772 回帖 • 511 关注
  • 小薇

    小薇是一个用 Java 写的 QQ 聊天机器人 Web 服务,可以用于社群互动。

    由于 Smart QQ 从 2019 年 1 月 1 日起停止服务,所以该项目也已经停止维护了!

    35 引用 • 468 回帖 • 759 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3201 引用 • 8216 回帖 • 5 关注

欢迎来到这里!

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

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

    启动报错 java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/xiaov]]

    知道什么原因吗

  • 其他回帖
  • relyn
    作者

    @destiny0 这错误是缺少包,你是用最新版的 xiaoV 吗?最新版的 D 有把所有依赖都封装成了一个 dependency.jar
    latke 那些包都在里面了

  • destiny0

    麻烦问一下,你启动项目的 pom 文件和 github 上的文件是一样的吗?为什么没有遇到报错?启动就报 java.lang.ClassNotFoundException: org.b3log.xiaov.XiaoVServletListener 这个错误。在 pom 中加上这个依赖后就报这个错误。
    org.b3log
    latke
    2.2.10

    错误:java.lang.ClassNotFoundException: com.scienjus.smartqq.callback.MessageCallback。有点不懂来请教一下,谢谢~(≧▽≦)/~

  • someone

    为何的没有图片的输出呢。

  • 查看全部回帖
relyn
永远相信美好的事情即将发生 福州

推荐标签 标签

  • gRpc
    11 引用 • 9 回帖 • 95 关注
  • 知乎

    知乎是网络问答社区,连接各行各业的用户。用户分享着彼此的知识、经验和见解,为中文互联网源源不断地提供多种多样的信息。

    10 引用 • 66 回帖 • 1 关注
  • TensorFlow

    TensorFlow 是一个采用数据流图(data flow graphs),用于数值计算的开源软件库。节点(Nodes)在图中表示数学操作,图中的线(edges)则表示在节点间相互联系的多维数据数组,即张量(tensor)。

    20 引用 • 19 回帖 • 5 关注
  • Vim

    Vim 是类 UNIX 系统文本编辑器 Vi 的加强版本,加入了更多特性来帮助编辑源代码。Vim 的部分增强功能包括文件比较(vimdiff)、语法高亮、全面的帮助系统、本地脚本(Vimscript)和便于选择的可视化模式。

    29 引用 • 66 回帖 • 2 关注
  • OpenShift

    红帽提供的 PaaS 云,支持多种编程语言,为开发人员提供了更为灵活的框架、存储选择。

    14 引用 • 20 回帖 • 662 关注
  • Unity

    Unity 是由 Unity Technologies 开发的一个让开发者可以轻松创建诸如 2D、3D 多平台的综合型游戏开发工具,是一个全面整合的专业游戏引擎。

    25 引用 • 7 回帖 • 123 关注
  • Access
    1 引用 • 3 回帖 • 1 关注
  • iOS

    iOS 是由苹果公司开发的移动操作系统,最早于 2007 年 1 月 9 日的 Macworld 大会上公布这个系统,最初是设计给 iPhone 使用的,后来陆续套用到 iPod touch、iPad 以及 Apple TV 等产品上。iOS 与苹果的 Mac OS X 操作系统一样,属于类 Unix 的商业操作系统。

    89 引用 • 150 回帖
  • MongoDB

    MongoDB(来自于英文单词“Humongous”,中文含义为“庞大”)是一个基于分布式文件存储的数据库,由 C++ 语言编写。旨在为应用提供可扩展的高性能数据存储解决方案。MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似 JSON 的 BSON 格式,因此可以存储比较复杂的数据类型。

    91 引用 • 59 回帖 • 3 关注
  • PHP

    PHP(Hypertext Preprocessor)是一种开源脚本语言。语法吸收了 C 语言、 Java 和 Perl 的特点,主要适用于 Web 开发领域,据说是世界上最好的编程语言。

    182 引用 • 408 回帖 • 489 关注
  • OpenResty

    OpenResty 是一个基于 NGINX 与 Lua 的高性能 Web 平台,其内部集成了大量精良的 Lua 库、第三方模块以及大多数的依赖项。用于方便地搭建能够处理超高并发、扩展性极高的动态 Web 应用、Web 服务和动态网关。

    17 引用 • 53 关注
  • JRebel

    JRebel 是一款 Java 虚拟机插件,它使得 Java 程序员能在不进行重部署的情况下,即时看到代码的改变对一个应用程序带来的影响。

    26 引用 • 78 回帖 • 678 关注
  • 开源中国

    开源中国是目前中国最大的开源技术社区。传播开源的理念,推广开源项目,为 IT 开发者提供了一个发现、使用、并交流开源技术的平台。目前开源中国社区已收录超过两万款开源软件。

    7 引用 • 86 回帖
  • SpaceVim

    SpaceVim 是一个社区驱动的模块化 vim/neovim 配置集合,以模块的方式组织管理插件以
    及相关配置,为不同的语言开发量身定制了相关的开发模块,该模块提供代码自动补全,
    语法检查、格式化、调试、REPL 等特性。用户仅需载入相关语言的模块即可得到一个开箱
    即用的 Vim-IDE。

    3 引用 • 31 回帖 • 112 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 675 关注
  • 创造

    你创造的作品可能会帮助到很多人,如果是开源项目的话就更赞了!

    186 引用 • 1020 回帖 • 1 关注
  • React

    React 是 Facebook 开源的一个用于构建 UI 的 JavaScript 库。

    216 引用 • 291 回帖 • 369 关注
  • Node.js

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

    139 引用 • 269 回帖
  • NetBeans

    NetBeans 是一个始于 1997 年的 Xelfi 计划,本身是捷克布拉格查理大学的数学及物理学院的学生计划。此计划延伸而成立了一家公司进而发展这个商用版本的 NetBeans IDE,直到 1999 年 Sun 买下此公司。Sun 于次年(2000 年)六月将 NetBeans IDE 开源,直到现在 NetBeans 的社群依然持续增长。

    78 引用 • 102 回帖 • 704 关注
  • SMTP

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

    4 引用 • 18 回帖 • 634 关注
  • OneDrive
    2 引用 • 1 关注
  • Spring

    Spring 是一个开源框架,是于 2003 年兴起的一个轻量级的 Java 开发框架,由 Rod Johnson 在其著作《Expert One-On-One J2EE Development and Design》中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许使用者选择使用哪一个组件,同时为 JavaEE 应用程序开发提供集成的框架。

    949 引用 • 1460 回帖
  • SendCloud

    SendCloud 由搜狐武汉研发中心孵化的项目,是致力于为开发者提供高质量的触发邮件服务的云端邮件发送平台,为开发者提供便利的 API 接口来调用服务,让邮件准确迅速到达用户收件箱并获得强大的追踪数据。

    2 引用 • 8 回帖 • 503 关注
  • 旅游

    希望你我能在旅途中找到人生的下一站。

    97 引用 • 903 回帖
  • App

    App(应用程序,Application 的缩写)一般指手机软件。

    91 引用 • 384 回帖
  • 分享

    有什么新发现就分享给大家吧!

    248 引用 • 1794 回帖 • 7 关注
  • AngularJS

    AngularJS 诞生于 2009 年,由 Misko Hevery 等人创建,后为 Google 所收购。是一款优秀的前端 JS 框架,已经被用于 Google 的多款产品当中。AngularJS 有着诸多特性,最为核心的是:MVC、模块化、自动化双向数据绑定、语义化标签、依赖注入等。2.0 版本后已经改名为 Angular。

    12 引用 • 50 回帖 • 510 关注