Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Web services 如何创建JSON Web服务来存储和检索简单属性文件中的数据?_Web Services_Rest - Fatal编程技术网

Web services 如何创建JSON Web服务来存储和检索简单属性文件中的数据?

Web services 如何创建JSON Web服务来存储和检索简单属性文件中的数据?,web-services,rest,Web Services,Rest,如何创建Java或Javascript JSON Web服务以从简单属性文件检索数据?我的意图是将其用作运行许多单元测试的Jenkins实例的全局属性存储。主属性文件还需要能够手动编辑并存储在源代码管理中 我只是想知道,对于像我这样的初级程序员来说,人们会推荐什么方法最简单。我需要最小的读取能力,但如果不是太难,还需要写入能力。因此,这意味着它不需要休息 如果Java或Groovy中已经存在类似的内容,请提供指向该资源的链接。我是SoapUI专家,但我不确定模拟服务是否可以做这种事情 我发现了,

如何创建Java或Javascript JSON Web服务以从简单属性文件检索数据?我的意图是将其用作运行许多单元测试的Jenkins实例的全局属性存储。主属性文件还需要能够手动编辑并存储在源代码管理中

我只是想知道,对于像我这样的初级程序员来说,人们会推荐什么方法最简单。我需要最小的读取能力,但如果不是太难,还需要写入能力。因此,这意味着它不需要休息

如果Java或Groovy中已经存在类似的内容,请提供指向该资源的链接。我是SoapUI专家,但我不确定模拟服务是否可以做这种事情


我发现了,但我不能让它工作,因为我根本不是一个Ruby程序员。

有很多Java REST框架,但我最熟悉Jersey,所以这里有一个Groovy脚本,它为属性文件提供了简单的读取功能

@Grapes([
@Grab(group='org.glassfish.jersey.containers',module='jersey-container-grizzly2-http',version='2.0'),
@Grab(group='org.glassfish.jersey.core',module='jersey-server',version='2.0'),
@Grab(group='org.glassfish.jersey.media',module='jersey-media-json-jackson',version='2.0')
])
导入org.glassfish.jersey.grizzly2.httpserver.grizzlyhttpserver工厂
导入org.glassfish.jersey.jackson.JacksonFeature
导入javax.ws.rs.GET
导入javax.ws.rs.Path
导入javax.ws.rs.products
@路径(“属性”)
类属性资源{
@得到
@生成(“应用程序/json”)
属性get(){
新文件(“test.properties”)。withReader{Reader->
属性p=新属性()
p、 加载(读卡器)
返回p
}
}
}
def rc=neworg.glassfish.jersey.server.ResourceConfig(PropertiesResource,JacksonFeature);
GrizzlyHttpServerFactory.createHttpServer('http://localhost:8080/'.toURI(),rc.start())
System.console().readLine(“按任意键退出…”)
不幸的是,由于Jersey使用的是3.1版的
asm
库,因此与Groovy的4.0版
asm
存在冲突,除非您使用
Groovy all
Embedded jar运行脚本(在命令行上调用
Groovy
并传递脚本是行不通的)。我还必须提供ApacheIvy依赖项。(希望Groovy团队能在下一个版本中解决这些问题,
asm
一个特别的版本在过去让我很伤心。)因此您可以这样称呼它(提供类路径jar的完整路径):

您只需创建一个名为
test.properties
的属性文件,然后将上述脚本复制到名为
restProperties.groovy
的文件中,然后通过上述命令行运行。然后,您可以在Unix中运行以下命令来进行尝试

curl http://localhost:8080/properties
它将返回属性文件的JSON映射

curl http://localhost:8080/properties