ibatis-user-java mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jeff Butler" <jeffgbut...@gmail.com>
Subject Re: Exception "XMLType mapping only supported for Oracle RDBMS"
Date Fri, 08 Feb 2008 21:03:37 GMT
It sounds like you have an older version of iBATIS somewhere in your runtime
classpath.

Do a general search for ibatos JAR files, make sure there is only one and
that it is the latest version.

Jeff Butler

On Feb 8, 2008 2:34 PM, Chetan Nayak <chetannayaks@gmail.com> wrote:

> Jasmi and Jeff,
>
>                     I'm still facing the issue which i mentioned below in
> the thread.
> When i read all methods of ResultProxy class and print out on the console
> ,it does not print the getRs class ,But at compile time the method is
> visible to me.
> When i run the application it says NoSuchMethod exception ,Any help will
> be greatly appreciated.
>
> Thanks in advance
> Chetan
>
>
>
> On 1/7/08, Jasmin_Mehta@nexweb.org <Jasmin_Mehta@nexweb.org> wrote:
> >
> >
> > What version of iBATIS are you using? May be you need some jar file
> > update. The getResult() method did work for me as mentioned by Jeff, without
> > any compilation err. I have a jar file for iBATIS 2.3.0.
> >
> >
> >
> >
> >   *"Chetan Nayak" <chetannayaks@gmail.com>*
> >
> > 01/07/2008 05:43 AM   Please respond to
> > user-java@ibatis.apache.org
> >
> >    To
> > user-java@ibatis.apache.org  cc
> >   Subject
> > Re: Exception "XMLType mapping only supported for Oracle RDBMS"
> >
> >
> >
> >
> > Hi Jeff ,
> >
> >             I tried doing what  you said ,
> > Here is the error i get now.
> >
> > java.lang.NoSuchMethodError:
> > com.ibatis.common.jdbc.logging.ResultSetLogProxy: method
> > getRs()Ljava/sql/ResultSet; not found
> > at com.cerner.clm.dao.sqlmap.XMLTypeHandlerCallback.getResult (
> > XMLTypeHandlerCallback.java:62)
> > at com.ibatis.sqlmap.engine.type.CustomTypeHandler.getResult(
> > CustomTypeHandler.java:52)
> > at
> > com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getPrimitiveResultMappingValue
> > (BasicResultMap.java :611)
> > at com.ibatis.sqlmap.engine.mapping.result.BasicResultMap.getResults(
> > BasicResultMap.java:344)
> > at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(
> > SqlExecutor.java:381)
> > at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(
> > SqlExecutor.java:301)
> > at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(
> > SqlExecutor.java:190)
> > at
> > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.sqlExecuteQuery
> > (GeneralStatement.java:205)
> > at
> > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryWithCallback
> > (GeneralStatement.java:173)
> > at
> > com.ibatis.sqlmap.engine.mapping.statement.GeneralStatement.executeQueryForList
> > (GeneralStatement.java :123)
> > at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
> > SqlMapExecutorDelegate.java:615)
> > at com.ibatis.sqlmap.engine.impl.SqlMapExecutorDelegate.queryForList(
> > SqlMapExecutorDelegate.java:589)
> > at com.ibatis.sqlmap.engine.impl.SqlMapSessionImpl.queryForList(
> > SqlMapSessionImpl.java:118)
> > at com.ibatis.sqlmap.engine.impl.SqlMapClientImpl.queryForList(
> > SqlMapClientImpl.java:95)
> >
> > Any idea's how to solve this.
> >
> >
> >
> > Thanks
> >
> > Chetan
> >
> >
> >
> >
> > On 12/27/07, *Jeff Butler* <*jeffgbutler@gmail.com*<jeffgbutler@gmail.com>>
> > wrote:
> > Here's how to get the real resultset from a the proxied class:
> >
> >
> > *public* Object getResult(ResultGetter getter) *throws* SQLException {
> >  ResultSet rs = getter.getResultSet();*
> >  if* (Proxy.*isProxyClass*(rs.getClass())) {
> >    InvocationHandler ih = Proxy. *getInvocationHandler*(rs);*
> >    if* (ih *instanceof* ResultSetLogProxy) {
> >      ResultSet realResultSet = ((ResultSetLogProxy) ih).getRs();
> >      // do something here...
> >    }
> >  }
> > }
> >
> > It's ugly - but it works.
> >
> > Jeff Butler
> > On Dec 26, 2007 11:37 AM, <*Jasmin_Mehta@nexweb.org*<Jasmin_Mehta@nexweb.org>>
> > wrote:
> >
> > Jeff,
> >
> > I did read your posting at *http://www.mail-archive.com/user-java@ibatis.apache.org/msg06898.html
> > *<http://www.mail-archive.com/user-java@ibatis.apache.org/msg06898.html> already
> > before sending this question. I could not understand how/where do I modify
> > the code to consider proxy class.
> >
> > My getOpaqueValue() displays *ResultSet class is: $Proxy2, *not
> > ResultSetLogProxy.
> >
> > The program DOES WORK if I turn off logging.
> >
> > I tried something like this:
> >
> >  public Object getResult(ResultGetter getter) throws SQLException {
> >    //    if (getter.getResultSet () instanceof OracleResultSet) {
> >            OPAQUE opaqueValue = getOpaqueValue(getter);
> >            if (opaqueValue != null) {
> >                XMLType xmlResult = XMLType.createXML (opaqueValue);
> >                return xmlResult.getDOM();
> >            } else {
> >                return null;
> >            }
> >     //   } else {
> >      //      throw new UnsupportedOperationException("XMLType mapping
> > only supported for Oracle RDBMS");
> >      //  }
> >    }
> >
> >
> >    private OPAQUE getOpaqueValue(ResultGetter getter) throws
> > SQLException {
> >
> >
> >          java.sql.ResultSet rs = getter.getResultSet();
> >          System.out.println ("ResultSet class is: " + rs.getClass());
> >
> >    //       ResultSetLogProxy rsProx =  (ResultSetLogProxy)rs;
> >          OracleResultSet ors =
> > (OracleResultSet)ResultSetLogProxy.newInstance(rs);         //--- *THROWS
> > ClassCastException*
> >          OPAQUE op = null;
> >          if (getter.getColumnName() != null) {
> >              op = ors.getOPAQUE(getter.getColumnName());
> >          } else {
> >              op = ors.getOPAQUE(getter.getColumnIndex());
> >          }
> >          return op;
> >      }
> >
> >
> > Thanks
> >
> >
> >
> >   *"Jeff Butler" <**jeffgbutler@gmail.com* <jeffgbutler@gmail.com>*>*
> >
> > 12/26/2007 12:24 PM
> >   Please respond to
> > *
> > **user-java@ibatis.apache.org* <user-java@ibatis.apache.org>
> >
> >
> >   To
> > *user-java@ibatis.apache.org* <user-java@ibatis.apache.org>  cc
> >   Subject
> > Re: Exception "XMLType mapping only supported for Oracle RDBMS"
> >
> >
> >
> >
> >
> > The code in the wiki article does not take into account the fact that
> > iBATIS logging changes the normal classes to proxy classes.  First thing to
> > do is turn off logging to see it will work.  Second thing, the code must be
> > modified to account for the proxy class if logging is enabled (add another
> > instanceof check for the proxy class, then unwind the embedded "real"
> > class).
> >
> > See here for more information:
> >  *
> > **http://www.mail-archive.com/user-java@ibatis.apache.org/msg06898.html*<http://www.mail-archive.com/user-java@ibatis.apache.org/msg06898.html>
> >
> > Jeff Butler
> >
> >
> >
> > On Dec 26, 2007 10:26 AM, < *Jasmin_Mehta@nexweb.org*<Jasmin_Mehta@nexweb.org>>
wrote:
> >
> > I am using code as directed in this url: *
> > **
> > **http://opensource.atlassian.com/confluence/oss/display/IBATIS/XMLTypeHandlerCallback.java
> > *<http://opensource.atlassian.com/confluence/oss/display/IBATIS/XMLTypeHandlerCallback.java>
> >
> > It throw UnsupportedOperationException("XMLType mapping only supported
> > for Oracle RDBMS");
> >
> > I have logger set to DEBUG  mode.
> >
> > I tried displaying class from ResultSet like :
> >
> >        java.sql.ResultSet rs = getter.getResultSet();
> >        System.out.println("ResultSet class is: " + rs.getClass());
> >
> > The cosole displays
> >
> > [20 Dec 2007 15:15:05] DEBUG [PreparedStatement] {pstm-100001} Executing
> > Statement:         SELECT OTM, SEQUENCE, MESSAGETYPE, MESSAGEID, STATUS,
> > PROCESSED_TIME, CREATED     FROM OTM_XML
> > [20 Dec 2007 15:15:05] DEBUG [PreparedStatement] {pstm-100001}
> > Parameters: []
> > [20 Dec 2007 15:15:05] DEBUG [PreparedStatement] {pstm-100001} Types: []
> > [20 Dec 2007 15:15:05] DEBUG [ResultSet] {rset-100002} ResultSet *
> > ResultSet class is: class $Proxy2 *
> >
> > I am using JDeveloper *10.1.3.1* <http://10.1.3.1/>
> >
> > What should I change in my code to make it working?
> >
> > Thanks
> >
> > *
> > ******************************************************************************
> > *
> > ATTENTION ATTENTION ATTENTION ATTENTION ATTENTION
> > Our domain name is changing.  Please take note of the sender's
> > e-Mail address and make changes to your personal address list,
> > if needed.  Both domains will continue to work, only for a limited
> > time.
> >
> > ******************************************************************************
> > This email and any files transmitted with it are intended solely for
> > the use of the individual or agency to whom they are addressed.
> > If you have received this email in error please notify the Navy
> > Exchange Service Command e-mail administrator. This footnote
> > also confirms that this email message has been scanned for the
> > presence of computer viruses.
> >
> > Thank You!            *
> >
> > ******************************************************************************
> > *
> >
> >
> >
> >
>

Mime
View raw message