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