× The internal search function is temporarily non-functional. The current search engine is no longer viable and we are researching alternatives.
As a stop gap measure, we are using Google's custom search engine service.
If you know of an easy to use, open source, search engine ... please contact support@midrange.com.



Cool. That's a very subtle issue with using reflection that I hadn't
thought about.

Dunno anything about Xalan, but since Java is pretty fundamentally about
dynamically loading
resources only when needed, I'd expect XALAN may have similar problems in
other circumstances too. Ultimately it may be a good fix for them.


"The stuff we call "software" is not like anything that human society
  is used to thinking about. Software is something like a machine, and
  something like mathematics, and something like language, and
  something like thought, and art, and information...
  but software is not in fact any of those other things."
Bruce Sterling - The Hacker Crackdown

Fred A. Kulack - IBM eServer iSeries - Enterprise Application Solutions
ERP, Java DB2 access, Jdbc, JTA, etc...
IBM in Rochester, MN  (Phone: 507.253.5982   T/L 553-5982)
mailto:kulack@xxxxxxxxxx   Personal: mailto:kulack@xxxxxxxxxxxxxx
AIM Home:FKulack  AIM Work:FKulackWrk
MSN Work: fakulack@xxxxxxxxxxx


                                                                                
                                                         
                      "Gary L Peskin"                                           
                                                         
                      <garyp@xxxxxxxxxxxx        To:       "'Java Programming 
on and around the iSeries / AS400'"                        
                      >                           <java400-l@xxxxxxxxxxxx>      
                                                         
                      Sent by:                   cc:                            
                                                         
                      java400-l-bounces@x        Subject:  RE: JDBC version vs 
JDK                                                       
                      idrange.com                                               
                                                         
                                                                                
                                                         
                                                                                
                                                         
                      08/15/2003 03:05 PM                                       
                                                         
                      Please respond to                                         
                                                         
                      Java Programming on                                       
                                                         
                      and around the                                            
                                                         
                      iSeries / AS400                                           
                                                         
                                                                                
                                                         
                                                                                
                                                         




Okay.  I found the problem.  Many thanks, David and Fred and John, for
helping with this.  The problem is that Connection.createStatement() is not
directly called by the program.  Instead, the name of the method
"createStatement()" is actually passed as a String to a routine in a
program
(called Xalan) that attempts to determine which method of Connection to
actually invoke.  In order to do this, it uses java reflection.
Specifically, it calls Class.getMethods() on the Connection object (which
is
DB2Connection) in order to ennumerate the methods so that it can figure out
which one the caller actually wants to call.

It is during the getMethods() call, while ennumerating the methods, that
Xalan ends up throwing a NoClassDefFoundError.  This is because it comes
across the setSavepoint method and tries to create the Method object for
it.
However, it can't find the Savepoint class so it throws up.

The OS/400 folks have decided to ship one db2_classes.jar supporting JDBC
3.0.  It shouldn't cause problems running under an older JDK unless you
actually try to "use" one of the JDBC 3.0-only methods.  It is necessary
for
the Xalan folks, then, to understand what "use" means.  If this isn't fixed
in the current version of Xalan (we're using an older version), I'll open a
bugzilla entry over there to exclude from consideration any methods that
throw a NoClassDefFoundError during the getMethods() call.

Gary

> -----Original Message-----
> From: java400-l-bounces@xxxxxxxxxxxx
> [mailto:java400-l-bounces@xxxxxxxxxxxx] On Behalf Of David Morris
> Sent: Friday, August 15, 2003 10:03 AM
> To: java400-l@xxxxxxxxxxxx
> Subject: RE: JDBC version vs JDK
>
>
> No, just DB2SavePoint. I will forward the whole thing to you directly.
>
> David Morris
>
> >>> garyp@xxxxxxxxxxxx 8/15/2003 10:02:59 AM >>>
> Just one more question before I ask my friend to open a PMR.
> In your -verbose logging, do you see a load for java.sql.Savepoint?
>
> Thanks,
> Gary
>
> _______________________________________________
> This is the Java Programming on and around the iSeries /
> AS400 (JAVA400-L) mailing list To post a message email:
> JAVA400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change
> list options,
> visit: http://lists.midrange.com/mailman/listinfo/java400-l
> or email: JAVA400-L-request@xxxxxxxxxxxx
> Before posting, please take a moment to review the archives
> at http://archive.midrange.com/java400-l.
>


_______________________________________________
This is the Java Programming on and around the iSeries / AS400 (JAVA400-L)
mailing list
To post a message email: JAVA400-L@xxxxxxxxxxxx
To subscribe, unsubscribe, or change list options,
visit: http://lists.midrange.com/mailman/listinfo/java400-l
or email: JAVA400-L-request@xxxxxxxxxxxx
Before posting, please take a moment to review the archives
at http://archive.midrange.com/java400-l.






As an Amazon Associate we earn from qualifying purchases.

This thread ...


Follow On AppleNews
Return to Archive home page | Return to MIDRANGE.COM home page

This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].

Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.