网站免费推广的方法,租用网络服务器的价格,百度软件应用中心下载,wordpress注册功能因此#xff0c;在上一篇文章中#xff0c;我讨论了一个允许在WADL中使用JSON-Schema的建议#xff0c;这篇文章探讨了如何使它与最近构建的Jersey一起使用。 在1.16发布之前#xff0c;您将必须下载/参考1.16SNAPSHOT。 如果您使用的是Maven#xff0c;那么假设您已经有… 因此在上一篇文章中我讨论了一个允许在WADL中使用JSON-Schema的建议这篇文章探讨了如何使它与最近构建的Jersey一起使用。 在1.16发布之前您将必须下载/参考1.16SNAPSHOT。 如果您使用的是Maven那么假设您已经有了jersey和jersey-json那么更新依赖项应该很简单。 您只需要添加对“ com.sun.jersey.contribs”组中“ jersey-wadl-json-schema”伪像的依赖关系即可获得新功能。 如果您不在Maven之外最简单的方法是下载最新的jersey-archive 然后下载jersey-wadl-json-schema jar。 如何部署这些是特定于工具的但是如果您使用的是WLS则以下是有关如何升级Jersey版本的一些特定说明 。 完成此工作后需要创建WadlGeneratorConfig类以启用此新的语法生成 package jersey;import com.sun.jersey.api.wadl.config.WadlGeneratorConfig;
import com.sun.jersey.api.wadl.config.WadlGeneratorDescription;
import com.sun.jersey.wadl.generators.json.WadlGeneratorJSONGrammarGenerator;import java.util.List;public class JsonGeneratorConfig extends WadlGeneratorConfig {Overridepublic Listconfigure() {return generator(WadlGeneratorJSONGrammarGenerator.class).descriptions();}
} 然后可以通过多种方式进行注册这是使用servlet初始化参数的示例。 还要注意为了使这个示例简单我们使用Jersey POJO映射 但是在撰写此博客时我注意到该设置会影响WADL的JSON版本的格式以防您尝试这样做。 ?xml version 1.0 encoding ISO-8859-1?
web-app xmlnshttp://java.sun.com/xml/ns/javaee xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsdversion3.0servletservlet-namejersey/servlet-nameservlet-classcom.sun.jersey.spi.container.servlet.ServletContainer/servlet-classinit-paramparam-namecom.sun.jersey.config.property.WadlGeneratorConfig/param-nameparam-valuejersey.JsonGeneratorConfig/param-value/init-paraminit-paramparam-namecom.sun.jersey.api.json.POJOMappingFeature/param-nameparam-valuetrue/param-value/init-paramload-on-startup1/load-on-startup/servletservlet-mappingservlet-namejersey/servlet-nameurl-pattern/resources/*/url-pattern/servlet-mapping
/web-app 因此我整理了一个非常简单的echo服务只是为了检查它是否正常工作 package jersey;import javax.ws.rs.Consumes;
import javax.ws.rs.GET;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;Path(/echo)
public class EchoResource {GETProduces(application/json)public EchoBean echo() {EchoBean bean new EchoBean();bean.setMessage(Hello);return bean;}POSTConsumes(application/json)Produces(application/json)public EchoBean echo(EchoBean echo) {return echo;}}andpackage jersey;public class EchoBean {public EchoBean() {super();}private String message;public void setMessage(String message) {this.message message;}public String getMessage() {return message;}} 这个非常简单的示例将导致以下带有引用的JSON-Schema元素的WADL ?xml version 1.0 encoding UTF-8?
ns0:application xmlns:ns0http://wadl.dev.java.net/2009/02ns0:doc xmlns:ns1http://jersey.java.net/ ns1:generatedByJersey: 1.16-SNAPSHOT 11/19/2012 12:59 AM/ns0:grammars/ns0:resources basehttp://localhost:7103/Jersey/resources/ns0:resource path/echons0:method idecho nameGETns0:responsens0:representation mediaTypeapplication/json xmlns:ns2http://wadl.dev.java.net/2009/02/json-schema ns2:describedbyapplication.wadl/echoBean//ns0:response/ns0:methodns0:method idecho namePOSTns0:requestns0:representation mediaTypeapplication/json xmlns:ns3http://wadl.dev.java.net/2009/02/json-schema ns3:describedbyapplication.wadl/echoBean//ns0:requestns0:responsens0:representation mediaTypeapplication/json xmlns:ns4http://wadl.dev.java.net/2009/02/json-schema ns4:describedbyapplication.wadl/echoBean//ns0:response/ns0:method/ns0:resource/ns0:resources
/ns0:application URI application.wadl / echoBean包含以下简单的JSON-Schema定义 {type : object,properties : {message : {type : string}},name : echoBean
} 现在当前设计中存在许多限制尤其是生成的模式不考虑任何符号设置 。 但是我认为这足以引起人们对该功能是否普遍有用的反馈。 在网络上以及在Oracle内部人们对JSON-Schema的兴趣似乎都在增长因此看看这种描述是否变得更加普遍将很有趣。 参考 Gerard Davison博客博客中的JCG合作伙伴 Gerard Davison 在泽西 岛上的 JSON-Schema生成 。 翻译自: https://www.javacodegeeks.com/2012/11/json-schema-generation-in-jersey.html