This is a problem we are working through right now. There are four options we explored (and I'm sure many more possibilities.) They are JNI, Jolt (only for calls in to a running Tuxedo bulletin board), a messaging layer (JMS might work, but we examined EAI more closely), or CORBA. We opted for EAI. This is a heavier weight solution, but EAI provides all of the necessary tools and APIs (most notably C broker clients and Java broker clients.)
My main problem, and perhaps someone on this forum has solved this, is how do we best manage transactional integrity across two heterogeneous application servers. Without the assistance of some sort of transaction manager, we are stuck with coding all of the transaction logic which, to put it mildly, is rough. Any thoughts?