`

RST API

    博客分类:
  • Java
 
阅读更多

Jersey

RESTful Web Services in Java

 

In my situation, Our team want to get chinese text tokenized result by JCSEG Tokenizer. After some thoughts, I dediced to provide them a restful api to meet them demands. The jersey framwork is the first

option to my situation.

Steps

1. In Eclipse, create a dynamic web project.

2. download jersey-archive-1.18.zip  and unzip it

3. import all jars in jersey-archive-1.18/lib to the lib dir of above created web project

4. Create three class

package com.inoknok.tokenizer.rest;

import java.io.IOException;

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.core.Response;

import org.lionsoul.jcseg.core.JcsegException;

@Path("/token")
public class TokenizerService {

	@GET
	@Path("/{name}")
	public Response getMessage(@PathParam("name") String name)
			throws JcsegException, IOException {

		// JcsegTest demo = new JcsegTest();
		// demo.segment(name);
		String outMsg;
		outMsg = Tool.demo.segment(name);

		return Response.status(200).entity(outMsg).build();
	}
}

 

package com.inoknok.tokenizer.rest;

import java.io.IOException;
import java.io.StringReader;

import org.lionsoul.jcseg.core.ADictionary;
import org.lionsoul.jcseg.core.DictionaryFactory;
import org.lionsoul.jcseg.core.ISegment;
import org.lionsoul.jcseg.core.IWord;
import org.lionsoul.jcseg.core.JcsegException;
import org.lionsoul.jcseg.core.JcsegTaskConfig;
import org.lionsoul.jcseg.core.SegmentFactory;

public class JcsegTest {

	ISegment seg = null;

	public JcsegTest() {
		// JcsegTaskConfig config = new JcsegTaskConfig();
		String propertyFilePath = "/path/to/jcseg.properties";
		JcsegTaskConfig config = new JcsegTaskConfig(propertyFilePath);

		ADictionary dic = DictionaryFactory.createDefaultDictionary(config);

		try {
			seg = SegmentFactory.createJcseg(JcsegTaskConfig.COMPLEX_MODE,
					new Object[] { config, dic });
		} catch (JcsegException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	public String segment(String str) throws IOException {

		StringBuffer sb = new StringBuffer();
		sb.append("{Result:[");
		// seg.setLastRule(null);
		IWord word = null;

		boolean isFirst = true;
		seg.reset(new StringReader(str));
		while ((word = seg.next()) != null) {
			if (isFirst) {
				sb.append(word.getValue());
				isFirst = false;
			} else {
				sb.append(",");
				sb.append(word.getValue());
			}

			word = null;
		}
		sb.append("]}");

		return sb.toString();
	}

}

 

package com.inoknok.tokenizer.rest;

public class Tool {
	public static JcsegTest demo = new JcsegTest();

}

 

The web.xml content is

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="2.5">
  <display-name>InokTokenizer</display-name>
  <display-name>REST Web Application Demo</display-name>
  <servlet>
    <servlet-name>jersey-serlvet</servlet-name>
    <servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
    <init-param>
      <param-name>com.sun.jersey.config.property.packages</param-name>
      <param-value>com.inoknok.tokenizer.rest</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>jersey-serlvet</servlet-name>
    <url-pattern>/*</url-pattern>
  </servlet-mapping>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
  </welcome-file-list>
</web-app>

 

5. deploy the project to tomcat6 or tomcat7

 

6. you can access the source by curl

curl http://localhost:8080/InokTokenizer/token/world-bes,hello,google,baidu

 

 

 

http://www.tuicool.com/articles/2Y3iue

http://www.ibm.com/developerworks/cn/web/wa-aj-tomcat/

http://blog.csdn.net/zztfj/article/details/7608991

http://www.ibm.com/developerworks/cn/xml/x-agaviREST/

 

jersey bulde jar download url : http://www.java2s.com/Code/Jar/j/jersey-bundle.htm

 

https://jersey.java.net/documentation/latest/user-guide.html

 

Java servlet

http://tutorials.jenkov.com/java-servlets/web-xml.html

 

curl

http://www.cnblogs.com/-clq/archive/2012/01/29/2330827.html

分享到:
评论

相关推荐

    RST专业版多个关键字请用空格分隔,最多填写5个。点击右侧Tag快速添加

    7. **API支持**:如果RST专业版是一个库或服务,那么它可能提供了API接口,让开发者可以将RST处理集成到自己的应用程序中。 8. **培训和支持**:专业版通常提供更详细的文档、视频教程和专业的技术支持,帮助用户更...

    利用libpcap发送TCP RST标志位,测试tcp连接破坏

    2. **构建TCP数据包**:利用libpcap提供的API,如`pcap_datalink()`和`pcap_pkthdr`结构体,你可以创建一个包含RST标志的TCP报文段。这需要设置源和目的IP地址、端口号,以及TCP头部的RST标志位(在TCP标志字段中...

    rst-workbench:rst-workbench支持RST解析器的轻松安装。 它使您可以在浏览器中直观地比较其结果

    支持的解析器当前,我们支持以下RST解析器,这些解析器作为Docker容器提供,带有REST API,并在RST-DT上进行了预培训: HILDA(Hernault等,2010)[仓库] [ ] HILDA本身只能从,因此我们不能提供自动构建,而只能...

    test_RST_phyOs.rar test_RST_phyOs.rar

    8. **系统API接口**:如果涉及到硬件层面的交互,可能需要了解操作系统提供的系统级API,如通过Windows API在Windows系统上执行特定操作。 综上所述,"test_RST_phyOs.py"这个文件可能是为了测试和恢复物理操作系统...

    ANSYS二次开发:pyansys测试的一组结果文件rst

    更复杂但更强大的后处理 API。 PyDPF-Post:流线型和简化的 DPF 后处理。更高级别的包和用途ansys-dpf-core。 旧版 PyMAPDL 阅读器:旧版结果文件阅读器。支持从 MAPDL v14.5 到当前版本的结果文件。

    PyPI 官网下载 | SQLAlchemy-JSONAPI-4.0.4.tar.gz

    - `README.md` 或 `README.rst`:项目简介和使用指南。 - `sqlalchemy_jsonapi` 目录:包含库的主要代码和模块。 - `__init__.py`:初始化模块,通常包含导出的公共接口。 - `models.py`、`resources.py`、`...

    PyPI 官网下载 | db2rst-0.5.tar.gz

    云原生(Cloud Native)是一种构建和运行应用程序的方法,强调微服务、容器化、声明式API以及持续交付等原则。在云原生环境中,Python库如db2rst可以帮助开发者快速构建和部署文档系统,特别是在需要动态更新数据库...

    PyPI 官网下载 | yotpo-api-0.0.5.tar.gz

    4. `README.md`或`README.rst`:提供关于库的介绍、使用方法和安装指南。 5. `requirements.txt`:列出了库运行所需的Python依赖项。 标签中提到了"zookeeper"、"分布式"和"云原生",这暗示了"yotpo-api"可能涉及...

    Python库 | sphinx2rst-1.1.0-py2.py3-none-any.whl

    Sphinx是一种强大的文档生成工具,广泛用于创建高质量的技术文档,如API参考、教程和项目文档。它支持自定义布局、主题以及丰富的交叉引用和扩展。而RST是一种文本格式,被Sphinx和其他许多文档工具广泛接受,它允许...

    PyPI 官网下载 | apispec-0.28.0.tar.gz

    4. `README.md`或`README.rst`:介绍apispec库的用途、安装方法、使用示例和贡献指南等信息。 5. `CHANGES`或`CHANGELOG`:记录apispec各个版本的更新内容。 使用apispec,开发者可以轻松地将API的元数据与代码分离...

    用于制作Matrix机器人的PythonAPI(httpsmatrix.org)。_Pyth.zip

    2. **文档**:可能有一个`docs`目录,其中包含了关于如何使用该库的文档,通常是Markdown或RST格式,有时还会包含HTML版本。 3. **示例**:库的示例代码可能位于`examples`或`samples`目录下,展示了如何初始化...

    Python库 | lp_api_wrapper-0.2.3.tar.gz

    3. `README.md`或`README.rst`:包含库的介绍、安装指南、示例代码以及使用注意事项。 4. `LICENSE`:记录了库的许可协议,通常为MIT、Apache 2.0等开源协议,规定了库的使用、修改和分发条件。 5. `requirements....

    Python库 | TwitterAPI-2.1.12.tar.gz

    6. `README.md`或`README.rst`:提供库的简要介绍和使用指南。 安装TwitterAPI库,可以通过Python的pip工具完成,命令如下: ```bash pip install TwitterAPI-2.1.12.tar.gz ``` 使用TwitterAPI库,首先需要获取...

    Algorithm-buildsimhub_python_api.zip

    2. **文档**:可能包括`.md`或`.rst`格式的文件,提供了API的使用指南和示例。 3. **示例**:实际的Python脚本,展示了如何调用API进行各种操作。 4. **测试**:`.py`文件用于测试API的功能,确保其正确工作。 5. **...

    Python库 | mypy-boto3-apigateway-1.14.15.0.tar.gz

    4. `README.md`或`README.rst`:项目文档,描述如何安装和使用这个库。 5. `LICENSE`:库的开源许可协议。 6. 可能还包括其他元数据文件,如`.gitignore`、`requirements.txt`或`CHANGELOG.md`等。 这个库的重要性...

    Python库 | libredte.api_client-2.4.2.tar.gz

    2. `README.md`或`README.rst`:这是项目说明文件,提供了库的介绍、安装指南、使用示例和贡献说明等内容。 3. `LICENSE`:描述了库的许可协议,定义了用户可以如何使用、修改和分发代码。 4. `requirements.txt`:...

    PyPI 官网下载 | fastapi-login-1.6.2.tar.gz

    2. `README.md`或`README.rst`:通常包含项目简介、安装指南、使用示例和贡献者信息等。 3. `LICENSE`:指定项目的许可协议,决定用户可以如何使用和分发代码。 4. `src/`或`fastapi_login/`:存放实际的源代码,...

    PyPI 官网下载 | ontap-api-wrapper-0.5.3.tar.gz

    2. `README.md`或`README.rst`:通常包含项目的介绍、安装指南、使用示例以及贡献者信息等。 3. `LICENSE`:文件中包含了该项目的许可协议,规定了可以如何使用、修改和分发这个软件。 4. `ontap_api_wrapper`目录...

    Python库 | vade_api-0.6.tar.gz

    4. `README.md`或`README.rst`:通常包含库的简介、安装指南、使用示例等信息。 5. `LICENSE`:库的授权协议,规定了使用和分发的条件。 6. `requirements.txt`:列出了库运行所需的依赖包及其版本。 vade_api库的...

    API实现检测IP存活,调用系统API练手

    如果超时或收到RST(复位)包,可能表示目标未响应或不可达。 2. **UDP数据包** - 虽然UDP(User Datagram Protocol)不保证数据传输的可靠性,但也可以发送一个UDP数据包到目标IP并检查是否接收到响应,以此判断IP...

Global site tag (gtag.js) - Google Analytics