No serializer found for class …(to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS)

Objective: Create an API that allows me to search for data in the article journal, retrieve its data in a class Item, display it in Json format. Path: I created a project on Liferay 6.1 using the Service Builder Portlet plugin. In my service.xml file, I created an Item entity. The fields in this entity are updated with the recovered article log data. This data is then displayed in JSON.

Problems encountered: I can display data in JSON on the Eclipse console with (Item). So I get them back, but I can not post them via Postman.

He shows me this error: No serializer found for class java.util.Collections$ 3 and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) ) (through reference chain:["expandoBridge"]->$ Proxy760["attributeNames"])

My differents classes :

public class SynchroApplication extends ResourceConfig {      public SynchroApplication() {         //packages("");         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);         } } 
@Path("synchro") public class JournalArticleRestService {      private static final Log _log = LogFactoryUtil.getLog(JournalArticleRestService.class);      @GET     @Path("/date")     @Produces(MediaType.APPLICATION_JSON)     public Item getJournalArticleAfter01012019() {          SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");         Locale locale = Locale.FRANCE;          ItemImpl item = new ItemImpl();           try {             Date date01012019 = sdf.parse("01/01/2019");             //Companies             List<Company> companies = CompanyLocalServiceUtil.getCompanies();             for(Company company : companies) {                 long companyId = company.getCompanyId();                 //Groups                 List<Group> groups = GroupLocalServiceUtil.getCompanyGroups(companyId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);                 for(Group group : groups) {                     long groupId = group.getGroupId();                     //Articles                     List<JournalArticle> articles = JournalArticleLocalServiceUtil.getArticles(groupId, QueryUtil.ALL_POS, QueryUtil.ALL_POS);                     for(JournalArticle article: articles) {                         if(article.getModifiedDate().after(date01012019))  {                    + " : " + article.getStructureId());                              long articleGroupId = article.getGroupId();                             long articleCompanyId = article.getCompanyId();                             long userId = article.getUserId();                             String 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);                             item.setCompanyId(articleCompanyId);                             item.setUserId(userId);                             item.setUserName(userName);                             item.setCreateDate(createDate);                             item.setModifiedDate(modifiedDate);                             item.setClassname_(className);                             item.setClassPK(classPK);                             item.setStatus(status);                             item.setStatusDate(statusDate);                   ;                          }                     }                 }             }          } catch (SystemException e) {             e.printStackTrace();         } catch (ParseException e) {             e.printStackTrace();         }          return item;      }  } 
<service-builder package-path="">      <namespace>synchronizationAPI</namespace>      <entity name="Item" uuid="true" local-service="true" remote-service="false">          <!-- PK fields -->         <column name="itemId" type="long" primary="true" />          <!-- Group instance -->         <column name="groupId" type="long" />          <!-- Audit fields -->         <column name="companyId" type="long" />         <column name="userId" type="long" />         <column name="userName" type="String" />         <column name="createDate" type="Date" />         <column name="modifiedDate" type="Date" />          <!-- Other fields -->         <column name="classname_" type="String" db-name="classname" />         <column name="classPK" type="long" />         <column name="status" type="int" />         <column name="statusMessage" type="String" />         <column name="statusDate" type="Date" />          <!-- Order -->         <order by="asc">             <order-column name="createDate" />         </order>          <!-- Finder methods -->         <finder name="CompanyId" return-type="Collection">             <finder-column name="companyId" />         </finder>         <finder name="GroupId" return-type="Collection">             <finder-column name="groupId" />         </finder>         <finder name="GroupIdAndClassName" return-type="Collection">             <finder-column name="groupId" />             <finder-column name="classname_" />         </finder>         <finder name="GroupIdAndClassNameAndStatus" return-type="Collection">             <finder-column name="groupId" />             <finder-column name="classname_" />             <finder-column name="status" />         </finder>      </entity>      <exceptions>         <exception>StatusNotFound</exception>     </exceptions>  </service-builder> 

Thank you for your answers

If well-founded induction holds, then the relation $\to$ on a reduction system terminates

I am trying to understand a proof from “Term Rewriting and All That” by Baader and Nipkow.

Well-founded induction (WFI) is the following statement:

$ \forall x \in A(\forall y \in A(x \stackrel{+}{\to}y \Rightarrow P(y))\Rightarrow P(x)) \Longrightarrow \forall x\in A (P(x))$

Here is the proof I cannot understand.

Theorem: If well-founded induction holds, then the relation $ \to$ on a reduction system terminates.

Proof: by WFI, where $ P(x):=$ “there exist no infinite chain starting from $ x$ “. The induction step is simple: If there exist no infinite chains starting from any successor of $ x$ , then there exist no infinite chains starting from $ x$ . Hence, the premise of WFI holds, and we can conclude that $ P(x)$ holds for all $ x$ i.e., $ \to$ terminates.

Why can we define $ P(x)$ to be “there exist no infinite chain starting from $ x$ “?

How can I remove the “To do” sidebar in Evolution?

I recently switched from Ubuntu GNOME 16.04 to Ubuntu 18.04. As a result I now have a sidebar “To do” in Evolution on the right-hand side of the e-mail view. How can I remove this sidebar?

Moving the ruler between the actual e-mail view and the “To do” sidebar doesn’t help: you can only make the sidebar very slim this way but cannot make it disappear completely.

Any way to order the Mail »To« autocomplete list (differently)?

It seems to me that older OS stocked somehow the information on how often I wrote an email to somebody, and proposed then in the »To« box an autocomplete based on that. Recently, this has changed, and I have no idea what the order is (it is not alphabetically, nor by number of mails written to that person, nor »recently used«).

Is there any possibility to bring it back to the »number of times the address was recently used«?

Thanks for any hints.