Follow-up to the follow-up. Wrote a subclass for JdbcClientHelper, figured out how to register it as a ClientHelper. Overrode/reimplemented the handle() and handleSqlRequest() functions, specifying a statement that returns a scrolling ResultSet, and it works fine, even on Informix!
-------------------------- John Wismar Alldata Technology 916-478-3296 > -----Original Message----- > From: John Wismar [mailto:[email protected]] > Sent: Thursday, January 26, 2012 11:42 AM > To: [email protected] > Subject: RE: JDBC Extension, problem with TYPE_FORWARD_ONLY RowSet > > Follow-up. > > On January 20, I wrote: > > I am writing a standalone app, using some of the Restlet client utilities > > for > convenience. (This app is using Restlet 2.1 RC2, and Java 7.) > > > > I'm trying to read some data from an Informix database (using JDBC > IfxDriver v3.7). When I send my JDBC query, I get an exception > > from Informix indicating that the RowSet is TYPE_FORWARD_ONLY. The > exception happens in RowSetRepresentation.create() > > when trying to populate the WebRowSet object. > (CachedRowSet.populate() calls ResultSet.absolute().) > > > > I tracked down the location where the SQL statement appears to be > created (JdbcClientHelper.handleSqlRequests()) and it > > looks like it's calling Connection.createStatement(), which does create a > statement that returns a TYPE_FORWARD_ONLY > > ResultSet. (There's a different overload that creates different ResultSet > types.) I don't see a way to get JdbcClientHelper to > > request a scrollable ResultSet (so the call to absolute() won't fail). > > > > > I did some further research on this, and found that this is an issue with the > Informix driver, but not an issue with the MySQL driver. Apparently Informix > insists that you can't call absolute() on FORWARD_ONLY ResultSets, but > MySQL's driver allows it. > > (I have a sample app that demonstrates the problem. It's not very useful > without an Informix DB to test against, though.) > > So I'm kind of stuck. The JdbcClientHelper doesn't allow me to request > statements returning a scrollable ResultSet. > > Is the best way forward to create a new client helper, possibly a subclass of > JdbcClientHelper? What do I then need to do to register the ClientHelper > object for JDBC calls? ------------------------------------------------------ http://restlet.tigris.org/ds/viewMessage.do?dsForumId=4447&dsMessageId=2911391

