Jersey 2 + JSONP 示例

位置:首页>文章>详情   分类: Web前端 > 编程技术   阅读(278)   2023-06-26 07:54:31

本教程解释了如何在 Jersey 2 中使用 JSONP JSON 提供程序.x。就像我们在 Jersey MOXy 示例 中讨论的那样,JSONP 也是可自动发现的。

JSONP maven 依赖项/更改

JSONP 媒体模块是 Jersey 2.x 中的模块之一,您不需要显式注册它的功能,例如JsonProcessingFeature。一旦 Jersey 检测到它在类路径中的存在,它就会自动注册它。所以只需在 pom.xml 中添加 JSONP 依赖项就完成了一半。

<dependency>
	<groupId>org.glassfish.jersey.media</groupId>
	<artifactId>jersey-media-json-processing</artifactId>
	<version>2.19</version>
</dependency>

REST API 代码

在编写 API 的服务端,您需要使用 @Produces(MediaType.APPLICATION_JSON) 注释启用 JSON 媒体类型。

泽西服务.java

@Path("/employees")
public class JerseyService 
{
	@GET
	@Produces(MediaType.APPLICATION_JSON)
	public Employees getAllEmployees() 
	{
		Employees list = new Employees();
		list.setEmployeeList(new ArrayList<Employee>());
		
		list.getEmployeeList().add(new Employee(1, "Lokesh Gupta"));
		list.getEmployeeList().add(new Employee(2, "Alex Kolenchiskey"));
		list.getEmployeeList().add(new Employee(3, "David Kameron"));
		
		return list;
	}
}	

模型 bean 更改

在模型 bean 端,您不需要放置任何注释或任何配置。它会默认工作。您甚至不需要放置任何根注释。

雇员.java

public class Employees 
{
	private List<Employee> employeeList;

	public List<Employee> getEmployeeList() {
		return employeeList;
	}

	public void setEmployeeList(List<Employee> employeeList) {
		this.employeeList = employeeList;
	}
}

雇员.java

public class Employee 
{
	private Integer id;
	private String name;
	
	public Employee() {
		
	}
	
	public Employee(Integer id, String name) {
		this.id  = id;
		this.name = name;
	}

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}
	
	@Override
	public String toString() {
		return "Employee [id=" + id + ", name=" + name + "]";
	}
}

手动添加 JsonProcessingFeature

虽然 org.glassfish.jersey.jsonp.JsonProcessingFeature 是自动注册的,但如果你想手动注册它,你可以在配置中添加它,如下所示。

public class CustomApplication extends ResourceConfig 
{
	public CustomApplication() 
	{
		register(JsonProcessingFeature.class);
		packages("com.howtodoinjava.jersey");
		packages("org.glassfish.jersey.examples.jsonp");
		register(LoggingFilter.class);
		property(JsonGenerator.PRETTY_PRINTING, true);

	}
}

并在 web.xml 文件中添加这个 Application 类。

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>

	<display-name>Archetype Created Web Application</display-name>

	<servlet>
		<servlet-name>jersey-serlvet</servlet-name>
		<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
		<init-param>
			<param-name>javax.ws.rs.Application</param-name>
			<param-value>com.howtodoinjava.jersey.CustomApplication</param-value>
		</init-param>
		<load-on-startup>1</load-on-startup>
	</servlet>

	<servlet-mapping>
		<servlet-name>jersey-serlvet</servlet-name>
		<url-pattern>/rest/*</url-pattern>
	</servlet-mapping>

</web-app>

参考:https://jersey.java.net/documentation /latest/media.html#json.json-p

标签2: Jersey JSON Files
地址:https://www.cundage.com/article/jax-rs-jersey-jsonp-example.html

相关阅读

本教程解释了如何在 Jersey 2 中使用 JSONP JSON 提供程序.x。就像我们在 Jersey MOXy 示例 中讨论的那样,JSONP 也是可自动发现的。 JSONP maven ...
Gson &lt;代码&gtl;JsonParser 用于将 Json 数据解析为 JsonElement 和 JsonObject 的解析树。 JsonObject 可用于使用 JSON 字符...
JavaScript JSON.stringify 教程展示了如何将 JavaScript 对象转换为 JSON 字符串。 JSON JSON(JavaScript 对象显示法) 是一种轻量级数...
JavaScript JSON.parse 教程展示了如何将 JSON 字符串解析为 JavaScript 对象。 JSON JSON(JavaScript 对象显示法) 是一种轻量级数据交换格...
JSON Server 教程介绍了 JavaScript json-server 库,它可用于创建伪造的 REST API。 JSON服务器 json 服务器 是一个用于创建测试 REST AP...
JSON forEach 教程展示了如何在 JavaScript 中循环遍历 JSON 数组。在本文中,我们使用 JSON 服务器来处理测试数据。 json 服务器 是一个用于创建测试 REST...
JavaScript JSON 漂亮打印教程展示了如何在 JavaScript 中漂亮地打印 JSON 数据。漂亮的印刷是一种风格格式,包括缩进和着色。 JSON(JavaScript 对象显示...
JavaScript 从 URL 读取 JSON 教程展示了如何从提供的 URL 读取 JSON 格式的数据。我们使用 JQuery、Fetch API 和 XMLHttpRequest。 网址...
屏蔽敏感信息是处理敏感客户数据的应用程序非常实际的需求。例如,银行应用程序。当这些应用程序在组织内部网络中运行时,很多时候会生成 UI 日志并将其存储在用户的机器上以供调试之用。 在上述情况下,...
Node-config 教程展示了如何使用 node-config 模块为 Node 应用程序创建配置文件。 节点配置 节点配置 creates configuration files for ...