Rust has always been a favorite language of mine since I started learning it while Java was my most favorite language in the past. There's a lot of java libraries and it is easy to write. There's a lot more to like about Java past those two. Rust is harder to learn, but one you get the hang of it then it becomes easy to write.
I have to be honest and say the amount of memory smaller Java applications need is too much compared to making it in NodeJS or Rust. It's understandable why (virtual machine, everything is an object, object headers, GC memory overhead, heap division, etc.), but when I look at something like C# it makes me wonder what holds Java back from small memory applications.
There's no point in waiting for Java to get to that point when there are languages like Rust that are gaining more features and libraries to compete for server side applications. There are several applications I wrote in Rust and pressed delete on the Java version.
Memory use is the biggest issue I think when it comes to Java especially for keeping the number of servers needed to run a service efficiently to the minimum. I can't think of using Java anymore outside of Java specific complex libraries. Once the library is ported over to Rust then the desire for Java dies off for me.
I've slowly become Rust and Javascript (NodeJS) oriented for client (CLI) and server side applications. Dart (Flutter) is the preferred language for mobile because platform specific libraries can still be used, so the drawbacks of it are very very minimal compared to the primary use case of one code base, multiple platforms.