HanLP封装为web services服务的过程介绍
前几天的召开的2019年大数据生态产业大会不知道大家关注到没有,看到消息是hanlp2.0版本发布了。不知道hanlp2.0版本又将带来哪些新的变化?准备近期看能够拿到一些hanlp2.0的资料,如果能顺利拿到的话,到时候分享给大家!今天分享这篇是关于将hanlp封装到web services服务中的。文章的部分内容有修改,阅读室请注意!
1. Apache Axis2简要介绍
Apache Axis2 是一种web services的引擎。支持SOAP和WSDL协议。它有两种语言的实现分别是Java实现的Apache Axis2/Java,和Apache Axis2/C。
Apache Axis2不仅支持SOAP1.1和SOAP1.2协议,同时还支持REST风格的协议。比起Apache Axis1,Apache Axis2更加高效,支持XML格式数据传输等。非常容易嵌入模块插件从而提高安全性和稳定性。例如WS-Security和WS-Addressing。
Apache Axis2的主要特征:(1)快速。(2)内存占用小(3)热部署(4)异步Web Services。(5)支持MEP传输规范(6)灵活扩展(7)高稳定性(8)面向组建的部署(9)在SMTP、FTP传输层协议之上(10)支持WSDL协议,易于构建stubs访问服务(11)方便组合和扩展。
2. 将HanLP封装为web services服务的过程
(1)准备工作
由于axis2要运行于servlet容器所以必须下载tomcat,解压到C:\Program Files\apache-tomcat-7.0.92,配置环境变量如下
Path=C:\Program Files\apache-tomcat-7.0.92\bin
下载axis2的binary安装包,解压到C:\Program Files\axis2-1.7.9,配置环境变量如下
AXIS2_HOME=C:\Program Files\axis2-1.7.9
Path=%AXIS2_HOME%\bin
(2)编写服务类
新建一个service包,并向其中添加服务类
package service;
import com.hankcs.hanlp.HanLP;
public class AnyService {
// 服务接口函数1
public String fun1(String text) {
if(text == null) {
return "";
}else {
return HanLP.XXX(text);
}
}
// 服务接口函数2
public void fun2(String text) {
if(text == null) {
HanLP.XXX(text);
}
}
}
可以定义任意个服务接口函数,函数内部可以实例化任意HanLP的类实例。
(3)编写services.xml
新建一个目录META-INF,并在该目下新建services.xml(文件名不可修改),输入下边内容
<service name="AnyService">
<parameter name="ServiceClass">
service.AnyService
</parameter>
<messageReceivers>
<messageReceiver
mep="http://www.w3.org/ns/wsdl/in-out"
class="org.apache.axis2.rpc.receivers.RPCMessageReceiver" />
<messageReceiver
mep="http://www.w3.org/ns/wsdl/in-only"
class="org.apache.axis2.rpc.receivers.RPCInOnlyMessageReceiver" />
</messageReceivers>
</service>
其中AnyService可以更换成自己想要的服务名称,但是服务类的名称必须与前边定义的服务类的名称一致。
(4)导出为 "任意服务名.aar",存储到C:\Program Files\apache-tomcat-7.0.92\webapps\axis2\WEB-INF\services。
(5)将HanLP配置文件hanlp.properties拷贝到C:\Program Files\apache-tomcat-7.0.92\webapps\axis2\WEB-INF\classes,配置HanLP的data所在目录位置
root=填写你的data所在的目录
HanLP会在C:\Program Files\apache-tomcat-7.0.92\webapps\axis2\WEB-INF\classes目录下寻找配置文件,然后读取。
(5)启动tomcat,使用浏览器访问服务
双击C:\Program Files\apache-tomcat-7.0.92\bin目录下的startup.bat文件。在浏览器中访问服务,地址栏输入
http://localhost:8080/axis2/services/AnyService/fun1?text=任意想出入的内容
HanLP封装为web services服务的过程介绍的更多相关文章
- PHP 调用asp.net Web Services服务问题总结
原文:PHP 调用asp.net Web Services服务问题总结 PHP是弱类型语言,转换非常不方便. < ?php //soap 客户端 $client=new SoapClient(' ...
- 基于soap 的 python web services 服务开发指南
文章大纲 序言 相关概念 SOA web services SOAP WSDL UDDI 环境搭建 我们使用 python 3.6 这个较新python 版本 服务端开发 客户端开发 suds-jur ...
- 跟我一起学WCF(3)——利用Web Services开发分布式应用
一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 We ...
- Web Services
Web Services 1. Web Services基本规范概述 1.1. 什么是Web Services Web Services是为实现“基于Web无缝集成”的目标而提出的全新 ...
- 利用Web Services开发分布式应用
一.引言 在前面文章中分别介绍了MSMQ和.NET Remoting技术,今天继续分享.NET 平台下另一种分布式技术——Web Services 二.Web Services 详细介绍 2.1 We ...
- 利用WSCF进行契约先行的Web Services开发
http://www.cnblogs.com/goody9807/archive/2007/06/05/772107.html 什么是契约先行(Contract-First)? 如果说一个新的软件开发 ...
- Web services 安全 - HTTP Basic Authentication
根据 RFC2617 的规定,HTTP 有两种标准的认证方式,即,BASIC 和 DIGEST.HTTP Basic Authentication 是指客户端必须使用用户名和密码在一个指定的域 (Re ...
- 分分钟带你玩转 Web Services
当大型需求被数个公司分割开来,各公司系统相互交换数据的问题就会接踵而来. 毕竟是多家不同的公司的产品,研发开发语言.采用技术框架基本上是百花齐放. 怎样让自家系统提供的服务具有跨平台.跨语言.跨各种防 ...
- RESTful Web Services初探
RESTful Web Services初探 作者:杜刚 近几年,RESTful Web Services渐渐开始流行,大量用于解决异构系统间的通信问题.很多网站和应用提供的API,都是基于RESTf ...
随机推荐
- decompiler
.NET Reflector trial version http://www.red-gate.com/products/dotnet-development/reflector/ 破解版本 .N ...
- Noip2011 提高组 选择客栈
P1311 选择客栈 直通 思路: ①看题,我们可以发现一个显然的性质,即当最左边的客栈向右移动时,最右边的客栈时单调向右的,并且右端点往右的客栈也符合要求.(因为只要左侧有一个满足的,右边的自然可以 ...
- [python]字典的直接赋值、浅拷贝和深拷贝解析
1.赋值引用 b = a: a 和 b 都指向同一个对象. 2.浅拷贝 b = a.copy(): a 和 b父对象是一个独立的对象,但他们的子对象还是指向统一对象(是引用). 3.深拷贝 b = ...
- ROS机器人开发实践学习笔记2
刚刚开始学习ROS,打算入机器人的坑了,参考教材是<ROS及其人开发实践>胡春旭编著 机械工业出版社 华章科技出品.本来以为可以按照书上的步骤一步步来,但是,too young to si ...
- H264基础简介
前言 H264是属于视频的编码层的标准格式,视频编码显然是为了压缩大小.我们看下一个完全没压缩的视频数据大小.假设视频是高清(1280 * 720),每秒30帧,也就是每秒的数据 1280 * 720 ...
- Flask中current_app和g对象
Flask零基础到项目实战(七)请求方法.g对象和钩子函数 一.get方法 二.post方法 post请求在模板中要注意几点: input标签中,要写name来标识这个value的key,方便后台 ...
- .md 即 markdown 文件的基本常用编写语法
0. 前言 Markdown 是一种纯文本格式的标记语言.通过简单的标记语法,它可以使普通文本内容具有一定的格式.现在的项目都使用了 git 仓库,再加上远程仓库 github 托管,那就难免要写一些 ...
- 004-jdk-数据结构-ArrayList、LinkedList
一.ArrayList概述 数组集合,无容量限制,非线程安全 ArrayList.Vector是线性表,使用Object数组作为容器去存储数据的,添加了很多方法维护这个数组,使其容量可以动态增长,极大 ...
- nginx使用场景
1. 对外开放本地封闭Server 本地server无法对外开放,nginx做反向代理,对外开发,使得外部可以访问封闭服务. upstream npm { server ; keepalive ; } ...
- css简单学习属性
1:内联元素和块级元素 1).块级元素,默认是:内联元素可以变成块级元素,块级元素可以变成内联元素. <!DOCTYPE html> <html lang="en&qu ...