I believe the engineer is capable enough of giving custom DLL so you don't need to follow long hiearchy.
.
Java -> JNI -> Custom DLL -> Call -> other DLL
JNI->Custom DLL is enough JNI is a efficient solution then trying anything else.
The other efficietn way of doing, avoid DLL and go for webservice.
So java webservice calls the other technology webservice.