I've recently had what I assume were incompatibility problems between my ojdbc driver and ons.jar when trying to use remote ONS subscription (i.e. no ONS server on the client). My code compiled but I was getting this error: Exception in thread "Thread-5" oracle.ons.SubscriptionException: Subscription request timed out after 30000 millseconds. Possible causes: OPMN may not be running, you may have an OPMN running in an alternate ORACLE_HOME using duplicate port values, or OPMN may be misconfigured.
Anyway, I fixed it by installing a full 11g client on my PC and copying the JDBC and ons.jar files over to my app server (client).
Given that the point of remote ONS subscription is that you can have an "all java" client, I wonder whether it would be worth including the appropriate ons.jar on the OTN JDBC downloads page?