Another option is Versile Java (I am one of the developers). It is under development, but is already stable enough, so you can try it if the GNU Affero GPL license works for your project.
Versile Java handles object-level interaction. Objects and methods are exposed in a straightforward manner, inheriting the corresponding base class and using annotations. The following is a simple example.
import org.versile.orb.external.*; @Doc(doc="Provides an echo service") public class Echoer extends VExternal { @Publish(show=true, ctx=false) @Doc(doc="Echo service, returns the provided argument.") public Object echo(Object obj) { return obj; } }
As a bonus, you can also use it to interact with Versile Python clients or services.
source share