why set up two servers where one will do? unless the java code you want to call is explicitly intended to only be called that way then I'd think ns_java is the way to go.
besides returning a method from the java method, the method can also use NsTcl to create 'side effects' in the host interpreter. So unless I'm mistaken you could do something like
NsTcl.eval("set rval " + myReturnValue);
on the java side.