Java 找不到类的序列化程序…(为了避免异常,请禁用SerializationFeature.FAIL\u ON\u EMPTY\u bean)
目标:创建一个API,允许我在文章日志中搜索数据,在类项目中检索数据,并以Json格式显示数据。 路径:我使用ServiceBuilderPortlet插件在Liferay 6.1上创建了一个项目。在我的service.xml文件中,我创建了一个条目实体。此实体中的字段将使用恢复的项目日志数据进行更新。然后,该数据以JSON格式显示 遇到的问题:我可以在Eclipse控制台上使用_log.info(Item)以JSON格式显示数据。所以我把它们拿回来了,但我不能通过邮递员邮寄 他告诉我这个错误:Java 找不到类的序列化程序…(为了避免异常,请禁用SerializationFeature.FAIL\u ON\u EMPTY\u bean),java,liferay,jersey-2.0,jackson2,Java,Liferay,Jersey 2.0,Jackson2,目标:创建一个API,允许我在文章日志中搜索数据,在类项目中检索数据,并以Json格式显示数据。 路径:我使用ServiceBuilderPortlet插件在Liferay 6.1上创建了一个项目。在我的service.xml文件中,我创建了一个条目实体。此实体中的字段将使用恢复的项目日志数据进行更新。然后,该数据以JSON格式显示 遇到的问题:我可以在Eclipse控制台上使用_log.info(Item)以JSON格式显示数据。所以我把它们拿回来了,但我不能通过邮递员邮寄 他告诉我这个错误:
找不到类java.util.Collections$3的序列化程序,也找不到创建BeanSerializer的属性(为了避免异常,请禁用序列化功能。在空BEANS上失败)(通过引用链:com.beorn.tm.synchro.model.impl.ItemImpl[“expandoBridge”]->$Proxy760[“attributeNames”])
我的不同班级:
public class SynchroApplication extends ResourceConfig {
public SynchroApplication() {
//packages("com.beorn.tm.api");
register(BanqueRestService.class);
register(HelloWS.class);
register(JournalArticleRestService.class);
register(JacksonFeature.class);
//Register Auth filter
register(AuthenticationFilter.class);
}
public static ObjectMapper getObjectMapper() {
ObjectMapper mapper = new ObjectMapper();
mapper.configure(com.fasterxml.jackson.databind.SerializationFeature.
WRITE_DATES_AS_TIMESTAMPS, true);
mapper.setVisibility(mapper.getSerializationConfig().getDefaultVisibilityChecker()
.withFieldVisibility(JsonAutoDetect.Visibility.NONE)
.withGetterVisibility(JsonAutoDetect.Visibility.ANY)
.withSetterVisibility(JsonAutoDetect.Visibility.ANY)
.withCreatorVisibility(JsonAutoDetect.Visibility.NONE));
mapper.setVisibility(PropertyAccessor.FIELD, Visibility.ANY);
mapper.enable(SerializationFeature.INDENT_OUTPUT);
mapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
return mapper;
}
public static String toJson(Object c) throws JsonProcessingException {
ObjectMapper mapper = getObjectMapper();
return mapper.writeValueAsString(c);
}
public static JsonNode fromJson(String input) throws Exception {
ObjectMapper mapper = getObjectMapper();
return mapper.readTree(input);
}
}
路径(“同步”)
公共类期刊助理服务{
私有静态最终日志_Log=LogFactoryUtil.getLog(JournalArticleRestService.class);
@得到
@路径(“/日期”)
@产生(MediaType.APPLICATION_JSON)
公共项目getJournalArticleAfter01012019(){
SimpleDataFormat sdf=新的SimpleDataFormat(“日/月/年”);
Locale=Locale.FRANCE;
ItemImpl item=新的ItemImpl();
试一试{
日期01012019=sdf.parse(“2019年1月1日”);
//公司
List companys=CompanyLocalServiceUtil.getcompanys();
适用于(公司:公司){
long companyId=company.getCompanyId();
//团体
List groups=GroupLocalServiceUtil.getCompanyGroups(companyId,QueryUtil.ALL\u POS,QueryUtil.ALL\u POS);
用于(组:组){
long groupId=group.getGroupId();
//文章
List articles=JournalArticleLocalServiceUtil.getArticles(groupId,QueryUtil.ALL\u POS,QueryUtil.ALL\u POS);
for(JournalArticle文章:文章){
if(article.getModifiedDate().after(date01012019)){
_log.info(article.getCreateDate()+”:“+article.getStructureId());
long-articleGroupId=article.getGroupId();
long-articleCompanyId=article.getCompanyId();
long userId=article.getUserId();
字符串userName=article.getUserName();
Date createDate=article.getCreateDate();
Date modifiedDate=article.getModifiedDate();
String className=article.getClassName();
long classPK=article.getClassPK();
int status=article.getStatus();
Date statusDate=article.getStatusDate();
item.setGroupId(articleGroupId);
项目.设置公司ID(articleCompanyId);
item.setUserId(userId);
item.setUserName(用户名);
item.setCreateDate(createDate);
item.setModifiedDate(modifiedDate);
item.setClassname(类名);
item.setClassPK(classPK);
项目.设置状态(状态);
项目.设置状态日期(状态日期);
_日志信息(项目);
}
}
}
}
}捕获(系统异常e){
e、 printStackTrace();
}捕获(解析异常){
e、 printStackTrace();
}
退货项目;
}
}
同步API
未找到状态
感谢您的回答只需添加以下属性
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
只需添加以下属性
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);