We have migrated our application from Vaadin 8 to Vaadin 12. Unfortunately

We are migrating our application from Vaadin 8 to Vaadin 12. Unfortunately the application refuses to deploy on IBM WebSphere 8.5.5.14. The following error is logged during application deployment.


Caused by: com.ibm.ws.exception.RuntimeWarning: com.ibm.ws.webcontainer.exception.WebAppNotLoadedException: Failed to load webapp: Failed to load webapp: WebBeans with api type with normal scope must be proxiable to inject.
com.vaadin.cdi.context.AbstractContextualStorageManager has no explicit no-arg constructor!A public or protected constructor without args is required!

My conclusion is that the problem is with the WebSphere validation of the classes. It requires the class AbstractContextualStorageManager to have an empty constructor. I believe that the only thing necessary to make this addon compatible with WebSphere is to add the following constructor.

protected AbstractContextualStorageManager () {
    this(false);
}

Is this something that you could fix?

Hi,

Anders Dahlberg:
com.vaadin.cdi.context.AbstractContextualStorageManager

This class is an abstract class. I don’t see any reason why it needs to be proxies and instantiated at all.
I don’t know why WebSphere wants anything from this class since it’s not supposed to be used as is.

Please just create a ticket here https://github.com/vaadin/cdi.

Thanks for your reply.

Yes, I am aware of that the class is abstract and that it does not really make sense to have an empty constructor. But I have no other suggestion how to solve the problem.

I have registered an Issue for the problem on the Vaadin CDI repository on GitHub.