Another great idea. Following this technique, the Java code executed perfectly when called from Clojure. Time to check my configuration again. Thanks for the tip!
On May 5, 12:59 pm, Adrian Cuthbertson <adrian.cuthbert...@gmail.com> wrote: > Perhaps you could try calling your java class directly from the repl... > > (TutorialConnect1.) > > That might highlight the problem - your java stack strace might give > some clues. It does sound like a classpath problem of some sort. > > Rgds, Adrian. > > On Tue, May 5, 2009 at 6:04 PM, Sean Devlin <francoisdev...@gmail.com> wrote: > > > That's a really good point, thanks for mentioning. Unfortunately, > > after looking into this, it's not the culprit. The java code's > > classpath is a _subset_ of the clojure code's classpath. Also, the > > DsrIPassport class doesn't exist. It was depricated years ago... > > > The Clojure code appears to be initialized differently from the Java > > code. > > > I'll try adding a dummy class, see if that works... > > > On May 5, 11:41 am, David Chamberlin <dawid...@googlemail.com> wrote: > >> It sounds like you maybe haven't included all the necessary stuff in > >> your classpath. > > >> If you are testing in REPL, then you need to include everything you > >> need in the classpath the the invoked JVM, for example: > > >> java -classpath my-jar-file-containing-DsrlPassport.jar;clojure.jar > >> clojure.main > > >> On 5 May, 15:54, Sean Devlin <francoisdev...@gmail.com> wrote: > > >> > Okay, I've got code that works in Java but I can't get working in > >> > Clojure. Here's the code in Java > > >> > public class TutorialConnect1 extends Object { > >> > JCO.Client mConnection; > >> > public TutorialConnect1() { > >> > try { > >> > // Change the logon information to your own system/user > >> > mConnection = JCO.createClient(...); //Connection parameters > >> > mConnection.connect(); > >> > System.out.println(mConnection.getAttributes()); > >> > mConnection.disconnect(); > >> > } > >> > catch (Exception ex) { > >> > ex.printStackTrace(); > >> > System.exit(1); > >> > } > >> > } > >> > public static void main (String args[]) { > >> > TutorialConnect1 app = new TutorialConnect1(); > >> > } > > >> > } > > >> > It simply prints some connection attributes about my system. Here's > >> > the same code in Clojure > > >> > (let [sap-con (com.sap.mw.jco.JCO/createClient ... )] ;connection > >> > attributes > >> > (do > >> > (. sap-con connect) > >> > (println (. sap-con getAttributes)) > >> > (. sap-con disconnect))) > > >> > I can successfully create the connection object in Clojure, but I get > >> > an error in the following s-exp > > >> > (. sap-con connect) > > >> > The error I get is : > > >> > #<CompilerException java.lang.NoClassDefFoundError: com/sap/jdsr/ > >> > writer/DsrIPassport (NO_SOURCE_FILE:0)> > > >> > The SAP library I'm using does rely on some native methods. The only > >> > guess I have right now is that the native methods are being linked to > >> > properly. > > >> > Can anyone give me a hand? > > >> > Sean --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---