嗯,任何人都可以说这个问题已经被问到并回答了。不要紧,我也找到他们了。
我对使用列表
响应的方式并不感到困惑,只是对可移植性不太相信。
@XmlRootElement
public class Stock {
@XmlAttribute
private Long id;
}
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public List<Stock> readStocks() {
final List<Stock> list = getStocks();
return list;
}
据了解,GlassFish和WileFly工作。
<stocks> <!-- automatic plural? -->
<stock xmlns="http://...">
</stock>\
<stock xmlns="http://...">
</stock>
</stocks>
<collection> <!-- fixed? -->
<stock xmlns="http://...">
</stock>\
<stock xmlns="http://...">
</stock>
</collection>
和JSON(我认为它可能因提供者而异)
[
{
"id": 1
},
{
"id": 2
}
]
有时,当容器找不到MessageBodyWriter
时,我会发现一个问题。所以我确实喜欢这个。
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public GenericEntity<List<T>> readStocks() {
return new GenericEntity<List<Stock>>(getStocks()) {};
}
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Response readStocks() {
return Response.ok(new GenericEntity<List<Stock>>(getStocks()) {}).build();
}
@XmlRootElement
public class Stocks {
@XmlElement
private List<Stock> stock;
}
@GET
@Produces({MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML})
public Stocks readStocks() {
final Stocks entity; ///
return Response.ok(entity).build();
}
根据4.2.4标准实体提供者(JSR-339),list
不在强制预打包MessageBody(ReaderWriter)
的列表中。
列表
是否标准化?或者哪种方式最便携?
list
实际上不是问题。对于iswritable
,JSON和XML的MBWs通常总是返回true。这就是他们如何能够处理你抛出的所有类型。这与类型擦除有关。genericentity
的目的是缓存泛型类型参数,这允许MBW知道要封送为什么类型。
请注意,GenericEntity
通常在返回Response
时使用。想象一下这个案子
public Response get() {
List<Somthing> l = service.get();
return Response.ok(l).build();
}
由于类型擦除,在实体到达类型时,MBW无法知道该类型。对于某个提供者来说,这并不重要。例如,对于Jackson,它通常不需要知道类型,因为它只是内省属性以进行序列化。但是对于Moxy/JAXB,它本质上需要了解类。这就是genericentity
发挥作用的地方。
List<String> list = new ArrayList<String>();
GenericEntity<List<String>> entity = new GenericEntity<List<String>>(list) {};
Response response = Response.ok(entity).build();
问题内容: 目前,为了表示go程序中的换行符,我使用。例如: …将产生一个换行符。 但是,这似乎并不是跨平台的。在其他语言中,PHP用全局常量()表示这一点。是代表在GO / golang一个跨平台的具体方式换行的路吗? 问题答案: 我对此感到很好奇,因此决定看看究竟是做什么的。http://golang.org/src/pkg/fmt/print.go 如果您滚动到最底部,你会看到一个地方,总是
从rest服务抛出的异常以某种方式返回为JSON是否可能?我有一个JAX-RS Rest服务来实现这一点。当我现在抛出它时,它被映射到一个HTML响应,这不是我想要的。据我所知,ExceptionMapper也会将其映射到HTML?是否有其他可供选择的或库允许以JSON格式返回异常?
问题内容: 在T-SQL中,我有一列包含一些文本,其格式如下: 其中可以有任意数量的括号集,但通常在3到6之间。我正在寻找一种将它们快速格式化为临时表或表变量的方法,以便可以报告数据。例如,我希望表格式为: 我知道这正在推动SQL的发展,应该通过修改应用程序来解决,但我希望T-SQL现在可以做些聪明的事情。 问题答案: 如果您具有最大的列数,则在CROSS APPLY中使用一些XML。 如果未知,
我正在使用泽西创建RESTful API资源,并使用生成响应。 RESTful资源的示例代码: 在响应中,它在响应头中返回分块传输编码。在“Jersey world”中,让它返回内容长度标题而不是响应标题中的传输编码:分块标题的正确方式是什么?
问题内容: 我想知道如何对方法返回List的JSON数组,例如: 我想知道如何在我的方法中接收List参数类型 我已经阅读了有关JaxbContext的文章,我了解它如何为我提供帮助。 问题答案: 使用JAXB时,支持两种类型。第一个是元素列表,第二个是元素定界字符串(“常规” XML值或属性,使用某些定界符将其解析为列表)。第一个似乎是您想要的(“数组”)。 有关参考,请参见:http : //
我已经看了很多教程,但我无法使我的简单JAX-RS应用程序工作。Tomcat总是返回错误404。 要获取类的应用程序: 我的JAX-RS文件: web.xml http://localhost:8080/msm-master/resources/hello/ 编辑:已添加Tomcat控制台输出: