前幾天的召開的2019年大數據生態(tài)產業(yè)大會不知道大家關注到沒有,看到消息是hanlp2.0版本發(fā)布了。不知道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格式數據傳輸等。非常容易嵌入模塊插件從而提高安全性和穩(wěn)定性。例如WS-Security和WS-Addressing。
Apache Axis2的主要特征:(1)快速。(2)內存占用小(3)熱部署(4)異步Web Services。(5)支持MEP傳輸規(guī)范(6)靈活擴展(7)高穩(wěn)定性(8)面向組建的部署(9)在SMTP、FTP傳輸層協議之上(10)支持WSDL協議,易于構建stubs訪問服務(11)方便組合和擴展。
2. 將HanLP封裝為web services服務的過程
(1)準備工作
由于axis2要運行于servlet容器所以必須下載tomcat,解壓到C:\Program Files\apache-tomcat-7.0.92,配置環(huán)境變量如下
Path=C:\Program Files\apache-tomcat-7.0.92\bin
下載axis2的binary安裝包,解壓到C:\Program Files\axis2-1.7.9,配置環(huán)境變量如下
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=任意想出入的內容