QC version 10.0 or < 10.0 do not support rest api, also latest version of QC including 11, 11.5 and 12 do not support all of its operations through rest such as design-step create/update/read or tractability links.
OTA api is pure .net based com classes which you can register on windows machine and use c# or vb to expose functionality such as create,update,read operations for various objects (Defect/req/test) via wcf/web services. Inturn in java you just need to call the web service which is exposed by yourself.
There is one issue with OTAClient api, due to which it crashes the dll because of memory allocation problems. Its hard to deal with it in 64x environment. Best approach is to expose functionality through developed web services using iis as iis have auto recovery approach to make it up and running in case dll crashes.
Let me know if you have further questions on this.