返回时灰熊服务器 500 响应 JSON
Grizzly Server 500 RESPONSE when returning JSON
我正在序列化一个字符串缓冲区,我正在将其进一步转换为 JSON 数组。请注意,我 100% 确定 JSON 数组有效。
现在,当我发送此 JSON 数组作为响应时,服务器 returns 500 请求失败。我确保将此 JSON 数组作为列表发送。
例如,字符串缓冲区现在已完全加载。
//Creating the JSONArray
JSONArray jsonArray = new JSONArray(stringBuffer.toString());
//Sending the response
return Response.status(200).entity(jsonArray.toList()).build();
我的 pom.xml
中有这些依赖项
<dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.grizzly/grizzly-http-server -->
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-server</artifactId>
<version>2.3.29</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
我在这里做错了什么?服务器也不打印任何堆栈跟踪。
好吧,我仍然不知道自己做错了什么。所以我完全停止创建 StringBuffer 并将 POJO 映射到 JsonObject。当您 return 一个 jsonobjects 列表时,如果您指定了 getter、setter 和构造函数,Grizzly 会自动将它们映射到一个 JSON 数组中。另外,请确保使用 @JsonProperty 注释。
参考范例:
public class Parameter {
@JsonProperty("Name")
public String name;
@JsonProperty("Value")
public String value;
}
这正确解析了 to/from JSON:
"Parameter":{
"Name":"Parameter-Name",
"Value":"Parameter-Value"
}
代码取自:When is the @JsonProperty property used and what is it used for? 感谢您提供代码,@OldCurmudgeon :)
我正在序列化一个字符串缓冲区,我正在将其进一步转换为 JSON 数组。请注意,我 100% 确定 JSON 数组有效。
现在,当我发送此 JSON 数组作为响应时,服务器 returns 500 请求失败。我确保将此 JSON 数组作为列表发送。
例如,字符串缓冲区现在已完全加载。
//Creating the JSONArray
JSONArray jsonArray = new JSONArray(stringBuffer.toString());
//Sending the response
return Response.status(200).entity(jsonArray.toList()).build();
我的 pom.xml
中有这些依赖项 <dependency>
<groupId>org.glassfish.jersey.containers</groupId>
<artifactId>jersey-container-grizzly2-http</artifactId>
</dependency>
<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.8.8</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.codehaus.jackson/jackson-mapper-asl -->
<dependency>
<groupId>org.codehaus.jackson</groupId>
<artifactId>jackson-mapper-asl</artifactId>
<version>1.9.13</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-json-jackson</artifactId>
</dependency>
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20160810</version>
</dependency>
<dependency>
<groupId>javax.ws.rs</groupId>
<artifactId>javax.ws.rs-api</artifactId>
<version>2.0</version>
</dependency>
<!-- https://mvnrepository.com/artifact/com.sun.jersey/jersey-server -->
<dependency>
<groupId>com.sun.jersey</groupId>
<artifactId>jersey-server</artifactId>
<version>1.19</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.8.2</version>
</dependency>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.8.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.glassfish.grizzly/grizzly-http-server -->
<dependency>
<groupId>org.glassfish.grizzly</groupId>
<artifactId>grizzly-http-server</artifactId>
<version>2.3.29</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.core</groupId>
<artifactId>jersey-common</artifactId>
<version>2.22.2</version>
</dependency>
<dependency>
<groupId>org.glassfish.jersey.media</groupId>
<artifactId>jersey-media-moxy</artifactId>
</dependency>
我在这里做错了什么?服务器也不打印任何堆栈跟踪。
好吧,我仍然不知道自己做错了什么。所以我完全停止创建 StringBuffer 并将 POJO 映射到 JsonObject。当您 return 一个 jsonobjects 列表时,如果您指定了 getter、setter 和构造函数,Grizzly 会自动将它们映射到一个 JSON 数组中。另外,请确保使用 @JsonProperty 注释。
参考范例:
public class Parameter {
@JsonProperty("Name")
public String name;
@JsonProperty("Value")
public String value;
}
这正确解析了 to/from JSON:
"Parameter":{
"Name":"Parameter-Name",
"Value":"Parameter-Value"
}
代码取自:When is the @JsonProperty property used and what is it used for? 感谢您提供代码,@OldCurmudgeon :)