前言
Jcoder的起源,是我在上一家公司酷云互动做的一个动态代码平台,当时的设计超级复杂,但是的确解决了我们很多线上的问题,最近我想把分词提供一些restful api接口来做到静动分离,这样不用每次更新分词都要重启整个网站,于是想重新写一下这个家伙,在心里大致分析了下需求,从此一发不可收拾,基本上重写了所有的模块。增加了一些比如动态加载jar包,ioc管理,资源文件,上传等实用功能,去掉了分布式,数据库依赖,等过重的功能。吹的再好终究要落地的。下面我和大家一起尝试利用jcoder来做一个分词服务,jcoder的项目地址:https://github.com/NLPchina/Jcoder 为了装逼需要。全写的pinyin。不是用我最擅长的中文,如果看着费劲你可以参看本文章
准备开发环境
https://github.com/NLPchina/Jcoder/releases 从这里下载最新的jcoder开发版本,安装jdk8,安装maven
#访问后台的所用的主机名,对于需要开放外网接口,但是管理后台内网使用很有用。保证安全
host=localhost
#port=8080
#home=~/.jcoder
#maven=mvn
#log=log/jcoder.log
同理这5个参数可以通过命令行传入,我们使用如下参数
java -jar jcoder-1.1.war --home=./jcoder_home --port=9999
好了现在我们启动jcoder
![](https://i-blog.csdnimg.cn/blog_migrate/e3ae8ee9422e5ce56314b78209270021.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/0fb60ac8968192c107d8763c1e42179d.webp?x-image-process=image/format,png)
登陆及说明
进入页面 http://localhost:9999 ps:我这里是远程主机
![](https://i-blog.csdnimg.cn/blog_migrate/6b3d4324c8a1ff6a5166268deafb00ca.webp?x-image-process=image/format,png)
登陆后我们就进入了后台管理页面
![](https://i-blog.csdnimg.cn/blog_migrate/21be5cae5fc35709cdd12ba063356886.webp?x-image-process=image/format,png)
创建分组
创建一个组来管理分词服务 选择左侧 Group Manager 选择 Add
![](https://i-blog.csdnimg.cn/blog_migrate/9a5e39dcab63ee490d9940baba6853c7.webp?x-image-process=image/format,png)
点击确定,此时左侧列表多出新创建的组
![](https://i-blog.csdnimg.cn/blog_migrate/43b50526061795d1c6e3f9a411e1d0c3.webp?x-image-process=image/format,png)
增加依赖Jar(maven方式)
选择 Jar Manager 在Maven 表格上选择小铅笔 :)
![](https://i-blog.csdnimg.cn/blog_migrate/379a659d4efa1201d5c6b1680869319f.webp?x-image-process=image/format,png)
进入maven管理配置页面增加你的mvn配置,增加后如下
![](https://i-blog.csdnimg.cn/blog_migrate/f4bbc3969746588882fcfa4533aa44de.webp?x-image-process=image/format,png)
选择保存并加载,可以从下方的控制台查看加载过程。
![](https://i-blog.csdnimg.cn/blog_migrate/e7a52c13f5b0bb9400632193dc8314a6.webp?x-image-process=image/format,png)
回到maven管理可以看到你新下载的jar文件
![](https://i-blog.csdnimg.cn/blog_migrate/cb5bf710bc8afe15d6e3286e6928da9d.webp?x-image-process=image/format,png)
话说简书很好用,粘贴图片好贴心。下面就开始写代码的过程了。
构建开发环境
选择左上角DevSDK。下载开发环境
![](https://i-blog.csdnimg.cn/blog_migrate/06017418e56cff23bebb5c4e232aa43f.webp?x-image-process=image/format,png)
随便选吧。因为我们现在也没有资源文件。点击后会开始一个下载过程。
将下载的zip包解压缩。
![](https://i-blog.csdnimg.cn/blog_migrate/1101928a35ffcaca353bb16228e7998a.webp?x-image-process=image/format,png)
以eclipse为例,以创建新项目的方式导入到eclipse。
![](https://i-blog.csdnimg.cn/blog_migrate/3f4fd2aa4f1aa0ed277f95ce4b3c6be2.webp?x-image-process=image/format,png)
![](https://i-blog.csdnimg.cn/blog_migrate/018b589513e64275334d32279035fa3b.webp?x-image-process=image/format,png)
现在创建我们第一个api
![](https://i-blog.csdnimg.cn/blog_migrate/24adee1ff484b7532cc05ff525fa7c12.webp?x-image-process=image/format,png)
代码如下
![](https://i-blog.csdnimg.cn/blog_migrate/06501a4818fe4bff389843926bf336e0.webp?x-image-process=image/format,png)
进入我们刚才创建的额 分词服务 组 然后选择 `Create Task`
![](https://i-blog.csdnimg.cn/blog_migrate/370e762d2537c7c3b2a84e37b0ce58b2.webp?x-image-process=image/format,png)
把代码粘贴进去,并保存
![](https://i-blog.csdnimg.cn/blog_migrate/b739417b6250cc4d8670d9c2f3111447.webp?x-image-process=image/format,png)
接口就发布成功了,现在你可以通过api的方式访问接口了,接口格式如下:http://serverName:port/api/[ClassName]/[methodName]?[field]=value
http://www.nlpcn.org:9999/api/SegApi/toSeg?content=%E4%B8%8A%E6%B5%B7%E5%B8%82%E8%99%B9%E6%A1%A5%E5%9B%BD%E9%99%85%E6%9C%BA%E5%9C%BA
![](https://i-blog.csdnimg.cn/blog_migrate/94ab90e49220f4e9ab4eb959c9471923.webp?x-image-process=image/format,png)
上面是json的返回格式。你希望返回头是text,请求地址变为http://www.nlpcn.org:9999/api/SegApi/toSeg?content=%E4%B8%8A%E6%B5%B7%E5%B8%82%E8%99%B9%E6%A1%A5%E5%9B%BD%E9%99%85%E6%9C%BA%E5%9C%BA&_callback=fun
![](https://i-blog.csdnimg.cn/blog_migrate/44d76d582637bb1bdd66e972fc057603.webp?x-image-process=image/format,png)
如果你需要jsonp。解决跨域问题。变为
![](https://i-blog.csdnimg.cn/blog_migrate/1aadab44200546e91373c202f4b1860e.webp?x-image-process=image/format,png)
好了一切都很美好。我们可以增加第二个api。用nlpanalysis进行分词
编辑api如下并保存
![](https://i-blog.csdnimg.cn/blog_migrate/07090fa4b899114640fc335d46f555a2.webp?x-image-process=image/format,png)
访问地址http://www.nlpcn.org:9999/api/SegApi/nlpSeg?content=%E4%B8%8A%E6%B5%B7%E5%B8%82%E8%99%B9%E6%A1%A5%E5%9B%BD%E9%99%85%E6%9C%BA%E5%9C%BA&_callback=fun
![](https://i-blog.csdnimg.cn/blog_migrate/1187a51fcf0191ae994b3d860870d74b.webp?x-image-process=image/format,png)
ok一切都如此的美好。没有重启。所见即所得!