我正在将Jersey 1.x升级到2.x.我在这样的资源类中有一个方法:
while (!kbhit())
printf("Howdyy you haven't pressed a key.\n");
在Jersey 1中,当调用API时它返回
“1”
正如所料。但是在Jersey 2中,它似乎会自动将字符串转换为数字,并在调用API时返回
1
我怎样才能恢复泽西岛1的行为?我希望ID保持字符串,而不是数字。
如果有帮助,在迁移到泽西岛2时,我只需更改
@GET @Path("/getId")
@Produces({ MediaType.APPLICATION_JSON })
public String getId() {
return "1";
}
到
<servlet>
<servlet-name>Jersey</servlet-name>
<servlet-class>com.sun.jersey.spi.container.servlet.ServletContainer</servlet-class>
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
</servlet>
我也尝试添加
<servlet>
<servlet-name>Jersey</servlet-name>
<servlet-class>org.glassfish.jersey.servlet.ServletContainer</servlet-class>
</servlet>
或
<init-param>
<param-name>jersey.config.server.provider.classnames</param-name>
<param-value>org.glassfish.jersey.moxy.json.MoxyFeature</param-value>
</init-param>
但没有区别。