javaspring-bootjson-rpcjsonrpc4j

Application fails on run in a new release of SpringBoot 3.0.0


I'm using jsonrpc4j library to handle my jsonrpc api. After migrating to new release of SpringBoot 3.0.0 it builds, but fails on run with an error of RemoteExporter:

ERROR 22396 --- [           main] o.s.boot.SpringApplication               : Application run failed
java.lang.NoClassDefFoundError: org/springframework/remoting/support/RemoteExporter

as jsonrpc4j uses it in it.

The reason seems to me in a version of Spring Context which comes with SpringBoot 3.0.0 dependency. org.springframework.remoting package is lack of .support package in that version.

Is there any way to avoid the issue?


Solution

  • It looks like org.springframework.remoting was removed in Spring 6 (see Drop RPC-style remoting: Hessian, HTTP Invoker, JMS Invoker, JAX-WS #27422). In Spring 5.3, the subclasses of RemoteExporter are marked deprecated (see Deprecate remoting technologies support #25379), but interestingly enough, RemoteExporter itself wasn't marked as such, but it has been removed anyway. You'll need to find a replacement library or ask the developers of jsonrpc4j to provide a version which supports Spring 6/Spring Boot 3.