WildFly 14: Ignore POJO setter during JSON serialization / deserialization
g.hohl Jan 11, 2019 9:56 AMHi everyone,
we have an application which was running on WildFly 10 / JEE7 so far. Now we ported it to WildFly 14 / JEE8 (and it seems we will move to WildFly 15 soon).
In that application we have a POJO looking like this:
@JsonInclude(Include.NON_NULL)
public class StateInformation {
private State state;
private String stateMessage;
public Information() {
super();
}
public State getState() {
return this.state;
}
public void setState(State state) {
this.state = state;
}
public String getStateMessage() {
return this.stateMessage;
}
public void setStateMessage(String stateMessage) {
this.stateMessage = stateMessage;
}
public boolean setStateIfNotSet(State state, String stateMessage) {
if (state == null)
throw new IllegalArgumentException("Argument state is null.");
if (stateMessage == null)
throw new IllegalArgumentException("Argument stateMessage is null.");
if (this.state == null) {
this.setState(state)
this.setStateMessage(stateMessage);
return true;
}
return false;
}
}
Until now that class worked perfectly. But since we switched, we get an exception:
RESTEASY008205: JSON Binding serialization error javax.json.bind.JsonbException: Invalid count of arguments for setter: public boolean org.example.rest.StateInformation.setStateIfNotSet(org.example.rest.State,java.lang.String): javax.ws.rs.ProcessingException: RESTEASY008205: JSON Binding serialization error javax.json.bind.JsonbException: Invalid count of arguments for setter: public boolean org.example.rest.StateInformation.setStateIfNotSet(org.example.rest.State,java.lang.String)
at org.jboss.resteasy.plugins.providers.jsonb.JsonBindingProvider.writeTo(JsonBindingProvider.java:149)
During the serialization / deseralization that method shouldn't be used at all. And before it wasn't also a problem, but now it is.
I tried to annotate the method using:
- com.fasterxml.jackson.annotation.JsonIgnore
- javax.json.bind.annotation.JsonbTransient
- javax.xml.bind.annotation.XmlTransient
But none of them does the job (also no combination).
Does anyone have any idea what has changed? And how we can fix it?