- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 JAX-RS( Jersey )和 Glassfish 作为服务器开发 RESTful Web 服务。我实现了返回实体列表的简单方法,当我尝试访问它时,服务器会抛出 500 错误
org.glassfish.jersey.message.internal.MessageBodyProviderNotFoundException: MessageBodyWriter not found for media type=application/json.
我尝试将 Genson lib 添加到我的项目中,但这没有帮助。我的代码有什么问题吗?
我的实体
@XmlRootElement
public class Device {
public Device(){}
public Device(String vendor, String model) {
this.vendor = vendor;
this.model = model;
}
public String vendor;
public String model;
}
服务
@Path("devices")
public class Devices {
@Context
Application app;
@Context
Providers providers;
@GET
@Consumes({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
public Response getAll(){
List<Device> result = new ArrayList<>();
result.add(new Device("Samsung","Galaxy S4"));
return Response.ok().entity(result).build();
}
}
Web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
version="3.1">
<display-name>Kontroller</display-name>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>com.drozdov.kontroller.api, com.drozdov.kontroller.models</param-value>
</init-param>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/api/*</url-pattern>
</servlet-mapping>
</web-app>
Pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.drozdov</groupId>
<artifactId>Kontroller</artifactId>
<version>1.0-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>0.99</version>
</dependency>
</dependencies>
</project>
最佳答案
您使用的是 Jersey 2 吗?如果是,这可能就是它不起作用的原因。尝试使用最新的 Genson 版本。它应该也可以与 Jersey 2+ 一起开箱即用。
<dependency>
<groupId>com.owlike</groupId>
<artifactId>genson</artifactId>
<version>1.2</version>
</dependency>
关于java - JAX-RS:Jersey + Genson = MessageBodyProviderNotFoundException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28865584/
我正在用 Java 为一个类开发 RESTful API。我正在使用 JAX-RS 我遵循了本教程 "JAX-RS Jersey" 。一切正常,除了当我尝试执行 response.readEntity
我正在使用 Java Jersey 框架(带有 Maven),并使用 IntelliJ 作为我的 IDE。我遇到了这个运行时异常,它只在我尝试从命令行运行代码时发生(使用 maven 进行编译,然后使
大家好我正在尝试从头开始创建一个休息网络服务。这是我的服务部分 @Path("/Phones") public class PhonessResource { @GET @Produces({Me
我是 Java Web 服务的新手,我正在努力解决一个基本问题。 在找到一堆过时的示例后,我设法得到了一些使用 XML 的东西,但是当我要求它返回 JSON 时,相同的代码将无法工作。 最初我认为这是
我解释一下我的问题。我发送一个来 self 的 User 类的对象。我将其从我的网站发送到我的 Restful 服务。但我尝试拥有它,并且我在参数中尝试的所有类型都无效或为 null : 发送类(cl
我想使用返回 XML 数据的 Web 服务 Client client = ClientBuilder.newClient(); String seLogerAPI = "http:/
我正在使用 Jersey 编写 JAX_RS 应用程序。所有以 JSON 形式返回单个对象的端点在 Tomcat 和 WildFly 中都可以正常工作。 一个返回对象集合的端点在 Tomcat 中工作
我正在使用 JAX-RS( Jersey )和 Glassfish 作为服务器开发 RESTful Web 服务。我实现了返回实体列表的简单方法,当我尝试访问它时,服务器会抛出 500 错误 org.
我一直在研究如何创建 JAX Restful 服务……使用此处提供的指南 - Jersey 如第 2.3.2 节所述,我在 Maven 中添加了以下依赖项 - org.glassfish.j
我使用 Jersey 并决定使用 GSON 而不是 Moxy 进行 JSON 处理(不喜欢 Moxy 需要 setter )。 到目前为止,一切工作正常,除了我的 JerseyTest 子类中的一个非
我正在尝试使用 Jersey 客户端调用 REST 服务(不使用 Jersey/JAX-RS)。以下代码可以很好地发布我的表单数据并接收响应: Form form = new Form();
我正在创建我的第一个网络服务,所以我可能遗漏了一些非常简单的东西。我在没有 Maven 的 Tomcat 上使用 Jersey 2.x 在 Eclipse Kepler 中创建了一个 Web 服务,它
我正在尝试安装信号服务器 v 0.93,服务器已运行。然后我使用 Signal Android v4.17,当我运行 android 应用程序时,它可以发送短信。但是当我提交验证码时,服务器返回以下错
我有一个使用 Jersey 2.8 的应用程序,我正在尝试升级到 2.22.2。但是当我这样做时,Jersey 不断抛出这些异常: org.glassfish.jersey.message.inter
我正在尝试使用 openfire REST-API-Client。我正在调用使用以下代码将用户添加到 openfire 的方法。 AuthenticationToken authenticationT
我正在尝试调用 request.getEntity 返回自定义类型,但看起来它正在以文本/纯文本而不是 JSON 的形式获取响应,这给了我以下错误。我通过返回一个字符串来测试 get 输出,并且能够以
我是一名优秀的程序员,十分优秀!