Issue with tomcat version of GWT 2.11 for class javax.validation.Path

69 views
Skip to first unread message

Priya

unread,
Mar 20, 2024, 5:45:24 AMMar 20
to GWT Users
Hi Team,

We are working on development environment with Tomcat 10 where third party jar  jakarta.validation-api.jar has been updated to tomcat specific version where package structure is changed from javax.validation to jakarta.validation.

When GWT 2.11 with tomcat specific jars(Gwt-servlet and requestfactory-server.jar) are deployed, it is trying to find javax.validation.Path with below stack trace-

Exception while dispatching incoming RPC call java.lang.NoClassDefFoundError: javax/validation/Path
         java.base/java.lang.Class.forName(Class.java:467)
  at com.google.gwt.user.server.rpc.SerializationPolicyLoader.loadFromStream(SerializationPolicyLoader.java:217)
  at com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet.loadSerializationPolicy(RemoteServiceServlet.java:98)
  at com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet.doGetSerializationPolicy(RemoteServiceServlet.java:437)
  at com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet.getSerializationPolicy(RemoteServiceServlet.java:251)
  at com.google.gwt.user.server.rpc.impl.ServerSerializationStreamReader.prepareToRead(ServerSerializationStreamReader.java:505)
  at com.google.gwt.user.server.rpc.jakarta.RPC.decodeRequest(RPC.java:241)

As this package has been changed in our environment to jakarta.validation.path, GWT source code is unable to find this class, giving NoClassDefFoundError. 

Also we can find several references of javax.validation.Path in gwt-user and other jars under GWT 2.11 jars.

My queries are  -
1. Has anyone come across such error, if yes, what is workaround. 
2. as javax packages are outdated and replaced by jakarta, is there a plan to update them and what is significance of those classes .Also, how this failure can be addressed. 
3. One solution I could see for older releases, is to add dependency for gwt-servlet-deps.jar, but that is not viable solution to us,as we are moving away from javax packages due to tomcat upgrade.

Any immediate help will be appreciated. 
Thanks!

Dean Zarras

unread,
Mar 20, 2024, 10:58:51 AMMar 20
to GWT Users
For whatever it might be worth...

I just went through a possibly similar exercise, getting my 2.11 GWT-RPC-based app to run with Tomcat 10. I had to run around my codebase and replace 'javax' with 'jakarta', but the last key step was ensuring that my GWTRPC services inherited from this class:  com.google.gwt.user.server.rpc.jakarta.RemoteServiceServlet

Note the .jakarta. in there, which otherwise is not present (in javax form) in the older/other class hierarchy -- a different package entirely.

Also note, my project is not using 'validation-api.jar' directly (not sure about indirectly), so I can't promise the above will help -- sorry.


Reply all
Reply to author
Forward
0 new messages