【问题标题】:MediaType.APPLICATION_JSON return type gives 500 Internal errorMediaType.APPLICATION_JSON 返回类型给出 500 内部错误
【发布时间】:2013-09-17 13:16:33
【问题描述】:

我遇到了一个奇怪的问题。我有一个使用 ANT 构建的 web 项目(java 服务)。但是由于某种原因,必须将构建系统更改为 Maven。

使用 Maven 构建后,我将 war 文件部署到 tomcat 上,当我查询 @Produces 值为 MediaType.APPLICATION_JSON 的某些服务(在浏览器中输入服务 URL)时,我得到的响应是“500 内部错误” ” 。当我使用 ANT 时,同样的事情效果很好(整个代码是相同的,只是构建系统不同)。

我编写了一个返回字符串 (MediaType.TEXT_PLAIN) 的虚拟服务,它按预期工作。使用 Maven 构建时是否有一些应用程序/json 的配置要返回?

更新:

HTTP Status 500 - Internal Server Error
type : Status report

message : Internal Server Error

description : The server encountered an internal error that prevented it from fulfilling this request.

pom.xml

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com</groupId>
    <artifactId>test</artifactId>
    <packaging>war</packaging>
    <version>0.0.1-SNAPSHOT</version>
    <dependencies>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
        </dependency>
        <dependency>
            <groupId>org.mongodb</groupId>
            <artifactId>mongo-java-driver</artifactId>
            <version>2.10.1</version>
        </dependency>
        <dependency>
            <groupId>com.sun.jersey</groupId>
            <artifactId>jersey-bundle</artifactId>
            <version>1.17.1</version>
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
            <version>20090211</version>
        </dependency>
        <dependency>
            <groupId>asm</groupId>
            <artifactId>asm-all</artifactId>
            <version>3.1</version>
        </dependency>
    </dependencies>
    <build>
        <finalName>ROOT</finalName>
    </build>
</project>

【问题讨论】:

  • 你能添加你的异常和你的 pom.xml 吗?

标签: java rest maven ant


【解决方案1】:

检查两场战争(ant vs Maven)。尤其是 WEB-INF/lib 目录。 Maven 版本很可能在那里缺少一些东西。如果是这样,请检查您的依赖项的范围。

看看他们的意思here

【讨论】:

  • 非常感谢。在开始比较 2 个 war 文件后,我意识到我错过了在 pom.xml 中为 jackson 添加依赖项。
猜你喜欢
  • 1970-01-01
  • 2013-02-26
  • 1970-01-01
  • 1970-01-01
  • 2021-11-12
  • 2013-07-24
  • 2018-11-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多