As Lasse said, there's JRuby. Without a compiler, it is mainly used to glue together existing J2EE apps or components right now, but eventually, they'll get a compiler working and you'll be able to marshal objects in both directions.
Conversely, we've been able to integrate through messaging channels (RESTfule web services, SOAP, and STOMP for messaging). I much prefer this strategy because it implies that you have a well-factored application design in the first place, and the Ruby code could be anything, as long as it can process the messages correctly.
I’ve looked at a lot of different solutions, and in my humble opinion Aspose is the way to go. Here’s the link: http://aspose.com