我想在接收JSON时使用@JsonAnySetter功能来收集未知数,所以我将带注释的方法添加到我的类(使用@XmlRootElement注释)和
<init-param>
<param-name>com.sun.jersey.api.json.POJOMappingFeature</param-name>
<param-value>true</param-value>
</init-param>
到我的web.xml。这很好。
我决定尝试摆脱我的web.xml。
我把班级改为
import org.glassfish.jersey.server.ResourceConfig;
@ApplicationPath("/services")
public class ListingRS extends ResourceConfig {
public ListingRS() {
packages("com.onlineimage.totalproperties");
}
并且一切正常,但永远不会调用@JsonAnySetter。
我尝试添加getFeatures(),如我在示例中找到的那样
public ListingRS() {
packages("com.onlineimage.totalproperties");
getFeatures().put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
}
但是getFeatures()无法识别,我认为它是Jersey 1.x?
我把它改成了
public ListingRS() {
packages("com.onlineimage.totalproperties");
getProperties().put(JSONConfiguration.FEATURE_POJO_MAPPING, true);
}
但我没有JSONConfiguration的导入,我无法弄清楚要用Jersey 2.0导入什么。此外,我不确定getProperties()是否是正确的方法。
我的Gradle库我正在使用
List compileLibraries =['org.glassfish.jersey.core:jersey-common:2.0',
'org.glassfish.jersey.core:jersey-server:2.0']
问题的根源是,我想在我的类上使用@XmlRootElement进行简单的xml转换,并使用@JsonAnySetter来处理未知数。 如果我不启用JSONConfiguration.FEATURE_POJO_MAPPING,则永远不会调用@JsonAnySetter方法。
假设我在上面没有做出可怕的错误,如何在没有web.xml文件的情况下启用JSONConfiguration.FEATURE_POJO_MAPPING?