[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    May 2020
    Beiträge
    7

    START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody

    Hallo Forum,

    eine Frage bzgl genannter Fehlermeldung.

    Im QSH kann ich mein Programm ohne weiteres mit Javac Main_Service.java -cp 'Pfad/Der/Jar-Files/okhttp390.jar:/weitere/jar/files.jar:' kompilieren.

    Rufe ich das Programm dann mittels Java auf (ob mit oder ohne Classpath) wird mir immer die Fehlermeldung


    Code:
    Ausnahmebedingung in Thread "main"# START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody
    Caused by: java.lang.ClassNotFoundException: okhttp3.RequestBody                                             
            at java.net.URLClassLoader.findClass(URLClassLoader.java:610)                                        
            at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)                                       
            at java.lang.ClassLoader.loadClass(ClassLoader.java:870)                                             
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)                                     
            at java.lang.ClassLoader.loadClass(ClassLoader.java:853)
    angezeigt.

    Der classpath ist eingetragen. Es handelt sich bei der .jarFile um eine externe Jar, in einem Package.
    Wieso kann ich es kompilieren, ohne Fehler, aber nicht ausführen?

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Die Complierung macht nur einen Syntaxcheck und erstellt den Zwischencode.
    Die Referenzen werden erst zur Laufzeit aufgelöst.
    Vielleicht fehlt dir in der Quelle ja eine Import-Direktive ohne die die Klasse nur mit ihrem vollständigen Namen verwendet werden kann.

    Bevor du Java auf die ibm i schiebst, empfehle ich dir, das über Eclipse erst zu testen.
    Da hast du mehr Möglichkeiten.
    Falls du die JT400.Jar dann benötigst, kannst du die auch lokal kopieren.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    May 2020
    Beiträge
    7
    Ich habe das mit dem RDI entwickelt und so auch ausprobiert. Da funktionierte alles einwandfrei. Auch mit dem jt400.

    Eigentlich sind die Import-Direktiven vorhanden.
    Code:
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    
    import okhttp3.MediaType;
    import okhttp3.MultipartBody;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.RequestBody;
    import okhttp3.Response;
    
    /* SQL */
    import java.sql.*;
    
    import java.util.ArrayList;

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Dann kann es nur noch einen Syntaxfehler im Classpath geben.
    Wie sieht dein Aufruf genau aus?
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    May 2020
    Beiträge
    7
    Code:
    java Main_Service -cp                                                                                                            
       ':/usr/local/Java/jar_files/okhttp3_9_0.jar:/usr/local/Java/jar_files/okio-1.14.0.jar:/usr/local/Java/jar_files/jt400.jar:/usr
    /local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/java-json.jar'                                                         
    Ausnahmebedingung in Thread "main"# START NON-TRANSLATABLEjava.lang.NoClassDefFoundError: okhttp3.RequestBody                    
    Caused by: java.lang.ClassNotFoundException: okhttp3.RequestBody                                                                 
            at java.net.URLClassLoader.findClass(URLClassLoader.java:610)                                                            
            at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:925)                                                           
            at java.lang.ClassLoader.loadClass(ClassLoader.java:870)                                                                 
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:343)                                                         
            at java.lang.ClassLoader.loadClass(ClassLoader.java:853)
    ich rufe den Classpath bisher immer bei jedem Start mit auf. Auch wenn ich den Classpath über ein CL befülle, tritt die selbe Meldung auf.

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Der Doppelpunkt am Anfang könnte u.U. ein Problem darstellen. Der Doppelpunkt dient zur Trennung der einzelnen Pfade.
    Desweiteren ist das IFS der IBM i casesensitive (im Gegensatz zu Windows). Achte also bei den Dateien (bei den Verzeichnissen ist es u.U. nicht relevant) auf die genaue Schreibweise.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  7. #7
    Registriert seit
    May 2020
    Beiträge
    7
    Auch ohne Doppelpunkt am Anfang tritt der Fehler auf. Die Dateinamen sind alle casesensitive aufgelistet.
    Ich habe mal ausprobiert ob wenigstens eine externe Jar (java-json.jar) genommen wird und das ist der Fall. Alle anderen machen Probleme. Liegt es an der Quellenzuordnung der einzelnen jar-Files? Im RDI kann ich mir nur die Quellen der json-File anzeigen lassen. Die anderen jedoch nicht. Nehme ich irgendeine andere jar-File, funktioniert es nicht.

    Ich habe dann die Klassen und Java Files manuell hinzugefügt und das funktioniert natürlich auch. Nur die jt400 macht dabei Probleme.

  8. #8
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Da fällt mir leider dann auch nichts mehr ein. Ich mache da zuwenig mit Java und bisher lief alles, wass ich mit Eclipse (nicht RDi) entwickelt habe.
    Hier kann ich nur raten.

    Eine Variante könnte noch eine inkompatible Java-Version auf der IBM i sein.
    Prüfe mal mit "Jave -version".
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  9. #9
    Registriert seit
    May 2020
    Beiträge
    7
    Code:
    java -version                                                                               
    java version "1.8.0_191"                                                                    
    Java(TM) SE Runtime Environment (build 8.0.5.25 - pap3280sr5fp25-20181030_01(SR5 FP25))     
    IBM J9 VM (build 2.9, JRE 1.8.0 OS/400 ppc-32-Bit 20181029_400846 (JIT enabled, AOT enabled)
    OpenJ9   - c5c78da                                                                          
    OMR      - 3d5ac33                                                                          
    IBM      - 8c1bdc2)                                                                         
    JCL - 20181022_01 based on Oracle jdk8u191-b26

  10. #10
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Java 8, das sieht zumindest gut aus. Aber eine Erklärung habe ich nicht.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  11. #11
    Registriert seit
    May 2020
    Beiträge
    7
    Danke trotzdem für die Hilfe. Ich probiere es weiter aus und trage meine Erkenntnisse ein.

  12. #12
    Registriert seit
    Jun 2012
    Beiträge
    25
    Auch wenn schon länger her ...

    Der Aufruf von Java ist: java [-options] class [args...]
    Somit hast du -cp ... als args übergeben und nicht als options.

    java -cp /usr/local/Java/jar_files/okhttp3_9_0.jar:/usr/local/Java/jar_files/okio-1.14.0.jar:/usr/local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/jt400.jar:/usr/local/Java/jar_files/java-json.jar Main_Service

    müsste klappen, sofern alle Pfadangaben stimmen.

Similar Threads

  1. Antworten: 0
    Letzter Beitrag: 09-10-14, 15:20
  2. COBOL und START Anweisung
    By geo_works in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 09-11-13, 13:37
  3. Start Managment Central
    By SL in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 02-06-03, 10:29
  4. Start Service Tools
    By Bosch in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 23-09-02, 17:06
  5. Die Zukunft ist lang, das Leben ist kurz
    By Michael Saxer in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 23-10-01, 08:25

Tags for this Thread

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •