当前位置: 首页 > 知识库问答 >
问题:

未找到媒体类型为application/json的JAX RS MessageBodyWriter

孟翰藻
2023-03-14

我正在使用JAX RS 2创建Rest客户端。客户端可以工作,但只有在我的IDE(IntellIJ IDEA)中,当我用Maven构建它时,使用Maven汇编插件并运行jar,它就不再工作了。

我收到的MessageBodyWriter找不到媒体类型=应用程序/json错误。

我尝试过添加其他帖子中建议的更多依赖项,但我不认为依赖项是一个问题,因为它在IDE中运行。

下面是引发异常的代码

return client.target(uri)
        .request(MediaType.APPLICATION_JSON)
        .post(Entity.entity(transactions.get(0), MediaType.APPLICATION_JSON));

调试后,当我替换事务时。使用空字符串“”获取(0),它可以工作。

这是pom。maven的xml

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>11</source>
                <target>11</target>
            </configuration>
        </plugin>
        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>SequencerControllers</mainClass>
                    </manifest>
                </archive>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
        </plugin>
    </plugins>
</build>
<dependencies>
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.core</groupId>
        <artifactId>jersey-client</artifactId>
        <version>2.25.1</version>
    </dependency>
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.25.1</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.0</version>
    </dependency>
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>
</dependencies>

我错过什么了吗?它在IDE中运行,但在使用Maven构建时却不运行,这让我非常困扰,因为我是使用依赖项构建它的。

共有1个答案

杜俊楚
2023-03-14

检查生成的JAR中是否有类com.fasterxml.jackson.jaxrs.json.JacksonJsonProvider。如果没有,请添加以下依赖项:

<dependency>
    <groupId>com.fasterxml.jackson.jaxrs</groupId>
    <artifactId>jackson-jaxrs-json-provider</artifactId>
    <version>2.10.0</version>
</dependency>
 类似资料:
  • 问题内容: 我正在尝试简单的Jersey + JSON示例,但出现以下错误 我放入以下jar文件以获得适当的结果 为什么会出现此类错误?错误日志在这里: web.xml JsonExample.java 和Json服务 如果我做错了事,请提出建议。 问题答案: 此问题已通过jersey-bundle-1.8.jar修复

  • 我在使用JAX-RS服务作为JSON时遇到了一些问题。

  • 问题内容: 我正在使用Jetty进行小型的RESTful服务。使用Maven作为构建工具。 当我尝试调用试图访问对象的JSON表示形式的GET方法时,出现“ MessageBodyWriter”错误。有问题的方法如下, GtfsRtFeedModel的GtfsRtFeedModel如下, 我的Maven文件包括以下内容以及码头依赖项, 大部分类似的问题似乎已通过添加和所需的依赖关系得以解决。但是由

  • 但最后一句话是: org.glassfish.jersey.message.internal.messageBodyProviderNotFoundException:找不到媒体的MessageBodyReader type=application/octet-stream,type=class com.app.weather.providers.org.openweatherap.pojo.we

  • 我正在尝试使用Jersey作为框架实现一个小的REST API,原则上代码工作正常,但是当我尝试对哈希表进行“GET”时,我得到以下错误: 这是有问题的一行: 这就是我实现服务的方式: pom公司。xml(maven依赖项) 服务器端配置: 在客户端中注册杰克逊时出错: 新类别: 术语类: 有人能帮我退回地图吗?

  • 我正在使用jersey客户端调用rest webservice。 我的网络服务正在使用json,所以我需要让json打电话给我的网络服务提供商。 我用下面的方法做这件事。 但是我得到了以下异常: 09:52:01,625错误[[MVC-dispatcher]]servlet MVC-dispatcher的Servlet.service()抛出异常com . sun . jersey . API .