Ase*_*ake 13 jersey jackson jersey-2.0
我正在使用Jersey 2.6实现REST Web服务,
我在注册Jackson提供程序以获得JSON支持时遇到了麻烦,我已经根据jeresy文档(https://jersey.java.net/documentation/2.6/user-guide.html#json.jackson)实现了.
参考:http: //blog.dejavu.sk/2013/11/19/registering-resources-and-providers-in-jersey-2/
由于某种原因杰克逊JSON提供商没有注册,我错过了什么?
Pau*_*tha 13
直到Jersey 2.9,该功能不会被自动发现.我们需要(1)JacksonFeature在Application/ResourceConfig子类中显式注册,(2)列出要扫描的包的web.xml中的Jackson包,或者(3)将JacksonFeature添加到web.xml中的提供者列表中
应用子类:
public class MyApplication extends ResourceConfig {
public MyApplication() {
// (1)
register(JacksonFeature.class); // <----- Jackson Support
packages("the.package.of.your.resources");
}
}
Run Code Online (Sandbox Code Playgroud)
或web.xml:
<servlet>
<servlet-name>Jersey Web Application</servlet-name>
<servlet-class>
org.glassfish.jersey.servlet.ServletContainer
</servlet-class>
<init-param>
<!-- (2) -->
<param-name>jersey.config.server.provider.packages</param-name>
<param-value>
the.package.of.your.resources,
org.codehaus.jackson.jaxrs <!-- Jackson providers -->
</param-value>
</init-param>
<init-param>
<!-- (3) -->
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>
org.glassfish.jersey.jackson.JacksonFeature
</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
Run Code Online (Sandbox Code Playgroud)
请参阅"第二期"中的更多详细信息.请注意,对于...classnames属性,如果要注册多个提供程序,则应将其列在以逗号,分号或换行符分隔的相同param-value中.
哦,只是一个FYI,ContextResolver只是ObjectMapper在可检索的上下文中注册,所以MessageBodyReader/MessageBodyWriters可以重用它.但它没有记录MessageBodyReader/Writer编组/解组所需的实际数据.
| 归档时间: |
|
| 查看次数: |
16099 次 |
| 最近记录: |