Serialization Exception

Posted on

I am getting "Caused by: java.lang.IllegalArgumentException: No matching constructor" for HttpServletRequestWrapper which I am extending while invoking ejb.

2021-03-24 16:11:06,742 INFO [stdout] (default task-9) Caused by: java.lang.IllegalArgumentException: No matching constructor

2021-03-24 16:11:06,742 INFO [stdout] (default task-9) at org.jboss.marshalling.reflect.SerializableClass.invokeConstructorNoException(SerializableClass.java:361)

2021-03-24 16:11:06,742 INFO [stdout] (default task-9) at org.jboss.marshalling.reflect.SerializableClass.callNonInitConstructor(SerializableClass.java:332)

2021-03-24 16:11:06,742 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:248)

2021-03-24 16:11:06,742 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:130)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.cloneFields(SerializingCloner.java:391)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.initSerializableClone(SerializingCloner.java:311)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:254)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.marshalling.cloner.SerializingCloner.clone(SerializingCloner.java:130)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.as.ejb3.remote.LocalEjbReceiver.lambda$clone$3(LocalEjbReceiver.java:373)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at java.security.AccessController.doPrivileged(Native Method)

2021-03-24 16:11:06,743 INFO [stdout] (default task-9) at org.jboss.as.ejb3.remote.LocalEjbReceiver.clone(LocalEjbReceiver.java:371)

Can I get some help and I don't see any no-arg constructor in the HttpServletRequestWrapper. How to get rid of this because I can't define with transient keyword. I am calling something like this below.
public class Wrapper extends HttpServletRequestWrapper implements Cloneable {

public Wrapper(HttpServletRequest request) {
    super(request);
}
//more logic

}

Responses