Yes I used XA.
The following elements I use in my config additional:
valid-connection-checker-class-name
exception-sorter-class-name
track-statements (only for internal test, slower and a lock contention)
prepared-statement-cache-size (appropriate value for your application)
And I use the correct type-mapping.
See docs/examples/jca/oracle-xa-ds.xml.
I see no reason for such Exception, maybe the exception-sorter can show a better Exception ...
What if you use a Java tool like squirrel to access the database?