如何创建Java或Javascript JSON How服务以从简单的属性文件中检索数据?我的目的是将其用作运行许多单元测试的Jenkins实例的全局属性存储。主属性文件还需要能够在源代码管理中手动编辑和存储。
我只是想知道,对于像我这样的初级程序员来说,人们会推荐什么方法最简单。我需要在最小的读取能力,但,如果它不是太难,写入能力也。因此,这意味着它不需要是REST。
如果Java或Groovy中已经存在这样的东西,那么我们将非常感谢指向该资源的链接。我是一名SoapUI专家,但我不确定模拟服务是否可以做这种事情。
我找到了something like this in Ruby,但我不能让它工作,因为我根本不是一个Ruby程序员。
发布于 2013-07-25 06:45:35
有许多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')
])
import org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpServerFactory
import org.glassfish.jersey.jackson.JacksonFeature
import javax.ws.rs.GET
import javax.ws.rs.Path
import javax.ws.rs.Produces
@Path("properties")
class PropertiesResource {
@GET
@Produces("application/json")
Properties get() {
new File("test.properties").withReader { Reader reader ->
Properties p = new Properties()
p.load(reader)
return p
}
}
}
def rc = new org.glassfish.jersey.server.ResourceConfig(PropertiesResource, JacksonFeature);
GrizzlyHttpServerFactory.createHttpServer('http://localhost:8080/'.toURI(), rc).start()
System.console().readLine("Press any key to exit...")不幸的是,由于Jersey使用的是3.1版本的asm库,因此与Groovy4.0版本的asm存在冲突,除非您使用groovy-all可嵌入jar运行脚本(仅通过在命令行上调用groovy并传递脚本是行不通的)。我还必须提供一个Apache Ivy依赖项。(希望Groovy团队能在下一个版本中解决这些问题--特别是asm one过去曾给我带来麻烦。)所以您可以这样调用它(提供类路径jars的完整路径):
java -cp ivy-2.2.0.jar:groovy-all-2.1.6.jar groovy.lang.GroovyShell restProperties.groovy您需要做的就是创建一个名为test.properties的属性文件,然后将上面的脚本复制到一个名为restProperties.groovy的文件中,然后通过上面的命令行运行。然后,您可以在Unix中运行以下命令来试用它。
curl http://localhost:8080/properties它将返回属性文件的JSON映射。
https://stackoverflow.com/questions/17818713
复制相似问题