Apache Juneau

基于 REST 构建的远程代理
授权协议 Apache
开发语言 Java
所属分类 服务器软件、 代理服务器软件
软件类型 开源软件
地区 不详
投 递 者 麻学博
操作系统 跨平台
开源组织 Apache
适用人群 未知
 软件概览

Juneau

Apache Juneau 是Apache Software Foundation (ASF)开发的一款项目,由Apache Incubator PMC赞助。

关于

  • 使用通用框架将POJO编组到各种内容类型的工具包。

  • REST服务器API,通过使用POJO创建基于Swagger的Self-documenting REST接口。

  • 通过使用POJO与REST接口进行交互的REST客户端API。

  • 基于REST构建的远程代理API。

  • 一个复杂的INI配置文件API。

  • REST微服务API,结合了上述所有功能,用于创建以毫秒为单位启动的轻量级独立REST接口。

实例

核心库包括易于使用和可定制的序列化器和解析器。 Javadoc中提供了许多示例。默认序列化器通常可以用于在单行代码中的serializers POJOs :

// A simple POJO class
	public class Person {		public String name = "John Smith";		public int age = 21;
	}	
	// Serialize a bean to JSON, XML, or HTML
	Person p = new Person();	
	// Produces:
	// "{name:'John Smith',age:21}"
	String laxJson = JsonSerializer.DEFAULT_LAX.serialize(p);	
	// Produces:
	// "{"name":"John Smith","age":21}"
	String strictJson = JsonSerializer.DEFAULT.serialize(p);	
	// Produces:
	// <object>
	//   <name>John Smith</name>
	//   <age>21</age>
	// </object><
	String xml = XmlSerializer.DEFAULT_SIMPLE.serialize(p);	
	// Produces:
	// <table>
	//   <tr><td>name</td><td>John Smith</td></tr>
	//   <tr><td>age</td><td>21</td></tr>
	// </table>
	String html = HtmlSerializer.DEFAULT.serialize(p);	
	// Produces:
	// name=John+Smith&age=$n(21)
	String urlEncoding = UrlEncodingSerializer.DEFAULT.serialize(p);	// Produces:
	// $o(name=John Smith,age=$n(21))
	String uon = UonSerializer.DEFAULT.serialize(p);	// Produces:
	// 82 A4 name AA 4A John Smith 68 A3 age 15
	byte[] messagePack = MsgPackSerializer.DEFAULT.serialize(p);	// Produces:
	// <rdf:RDF
	//  xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
	//  xmlns:jp="http://www.ibm.com/juneaubp/"
	//  xmlns:j="http://www.ibm.com/juneau/">
	// 	<rdf:Description>
	// 		<jp:name>John Smith</jp:name>
	// 		<jp:age>21</jp:age>
	// 	</rdf:Description>
	// </rdf:RDF>
	String rdfXml = RdfSerializer.DEFAULT_XMLABBREV.serialize(p);	
	// Produces:
	// @prefix jp:      <http://www.ibm.com/juneaubp/> .
	// @prefix j:       <http://www.ibm.com/juneau/> .
	//	[]    jp:age  "21" ;
	//	      jp:name "John Smith" .
	String rdfN3 = RdfSerializer.DEFAULT_N3.serialize(p);	// Produces:
	// _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd <http://www.ibm.com/juneaubp/name> "John Smith" .
	// _:A3bf53c85X3aX157cf407e2dX3aXX2dX7ffd <http://www.ibm.com/juneaubp/age> "21" .
	String rdfNTriple = RdfSerializer.DEFAULT_NTRIPLE.serialize(p);

解析POJO操作也很简单:

// Use one of the predefined parsers.
	ReaderParser parser = JsonParser.DEFAULT;
	
	// Parse a JSON object (creates a generic ObjectMap).
	String json = "{name:'John Smith',age:21}";
	Map m1 = parser.parse(json, Map.class);
	
	// Parse a JSON string.
	json = "'foobar'";
	String s2 = parser.parse(json, String.class);
	
	// Parse a JSON number as a Long or Float.
	json = "123";
	Long l3 = parser.parse(json, Long.class);
	Float f3 = parser.parse(json, Float.class);
	
	// Parse a JSON object as a bean.
	json = "{name:'John Smith',age:21}";
	Person p4 = parser.parse(json, Person.class);
	
	// Parse a JSON object as a HashMap<String,Person>.
	json = "{a:{name:'John Smith',age:21},b:{name:'Joe Smith',age:42}}";
	Map<String,Person> m5 = parser.parseMap(json, HashMap.class, String.class, Person.class)
	
	// Parse a JSON array of integers as a Collection of Integers or int[] array.
	json = "[1,2,3]";
	List<Integer> l6 = parser.parseCollection(json, LinkedList.class, Integer.class);
	int[] i6 = parser.parse(json, int[].class);
 相关资料
  • 我正在尝试使用令牌调用远程构建。它给了我401。根据我的理解,token不需要。 我在这里缺少什么?

  • 我有一个类似于用XDebug设置IntelliJ Idea远程调试的问题,但是由于没有发布解决方案,我无论如何都要问它。 你知道可能出了什么问题吗?有防火墙设置的东西允许端口9000上的传入连接?

  • braft 本身并不提供server功能, 你可以将braft集成到包括brpc在内的任意编程框架中,本文主要是阐述如何在分布式Server中使用braft来构建高可用系统。具体业务如何实现一个Server,本文不在展开。 Example server-side code of Counter 注册并且启动Server braft需要运行在具体的brpc server里面你可以让braft和你的业

  • 本文向大家介绍jenkins 远程构建Android的过程详解,包括了jenkins 远程构建Android的过程详解的使用技巧和注意事项,需要的朋友参考一下 由于企业的需求,需要做一个网站开分享每个版本的Android的app,所以需要使用的工具如下:   Jenkins平台,远程编译环境服务器一台,web服务器一台,根据自己的选择,可以搭配自己的资源,废话少说,直奔主题   1. Jenkin

  • 目标:构建基于 Maven 和 Tomcat 的基础镜像 本项目代码维护在 DaoCloud/docker-demo-build-base-image 项目中。 您可以在 GitHub 找到本项目并获取本文中所提到的所有代码文件。 前言 在 Java 开发的世界中,有很大一部分应用是基于 Maven 构建的,而最终的交付结果也是一个 war 包,所以,构建一个基于 Maven 和 Tomcat 的

  • Knative 是一个基于 Kubernetes 的,用于构建、部署和管理现代 serverless 应用的平台。

  • Gradle 的构建脚本展示了 Groovy 的所有能力. 作为开胃菜, 来看看这个: 例子 6.4. 在 Gradle 任务里使用 Groovy build.gradle task upper << { String someString = 'mY_nAmE' println "Original: " + someString println "Upper case:

  • 本文向大家介绍Spring基于ProxyFactoryBean创建AOP代理,包括了Spring基于ProxyFactoryBean创建AOP代理的使用技巧和注意事项,需要的朋友参考一下 Spring 通知类型 通过前面的学习可以知道,通知(Advice)其实就是对目标切入点进行增强的内容,Spring AOP 为通知(Advice)提供了 org.aopalliance.aop.Advice 接