JAVA HTTP_2

JAVA HTTP_2
2020-02-06T20:48:53+01:00
2020-02-07T19:08:05+01:00
2022-10-15T21:16:18+02:00
anzek
Üdv újra mindenkinek!
Gondolom sokak számára triviális, egyszerű kérdésem lenne...
Megakadtam a HTTP2 - XML szövegtartalom beküldésen... válasz fogadáson! 
Hol rontom el, mi nem jó ebben, vagy mi hiányzik beőle?
2 éve írtam egy NAV onlineszámla rendszert, amely mág több ezer számlát küldött be NAV-hoz, lényegében hibátlanul... Ott is több alkalommal segítettek, hála Nektek!
... most, hogy jön az új 2.0-s úgy gondoltam teljesen újraírom, az EKAER-rrel kiegészítve.
Mostmár Apache NetBeans IDE 11.1 és JAVA SE 64bit 11.0.4 -be fejleszteném (2 éve még NB IDE 8.2 és JAVA 8 volt).
A régi alkalmazás HTTP1 osztálya simán beküldi, jön is a válasz, de 2020 áprilistól már csak a HTTP2-vel fogad a NAV...
Mellékeltem a kódot és az output képernyőt is, plusz az IDE adatait.
Kérnélek benneteket, hogy csak tényleg, hatékony segítségnyújtási szándékkal írjatok, és azt nagyon megköszönöm! 
Mutasd a teljes hozzászólást!
Csatolt állomány
Nem hinném... biztosan nincs.
Talán lehet, hogy tényleg ez a probléma?
Mutasd a teljes hozzászólást!

  • Ahogy most próbálod használni, az az úgynevezett aszinkron megoldás, amikor elküldöd a kérést, megmondod hogy majd hogy szeretnéd kezelni a választ, de aztán nem várod meg a tényleges választ, hanem haladsz tovább a kódoddal. Bár a main() metódusodat nem mutattad meg, de simán lehet, hogy véget ér, mielőtt a válasz ténylegesen megérkezne, és ezért nem látod a kimeneten.

    Én először szinkron módon próbálnám megvalósítani, úgy kevesebb meglepetés ér és könnyebb debugolni. Ha már megy a szinkron megoldás, és tényleg aszinkron kéne, onnan már könnyebben boldogulsz. Tehát sendAsync() helyett send(), ami szépen megvárja a választ, és visszaadja HttpResponse-ként. Ha ez már megy gond nélkül, akkor próbáld átírni úgy, hogy sendAsync()-ot használjon.

    Szerk: Ja és legközelebb ha hibát akarsz jelenteni, ne ennyit írj le, hogy "exception-t okoz". Exception-ből lehet millió féle, és beszédes hibaüzenettel is jönnek. Ha csak gyors debugolásra kell, akkor egy printStackTrace() hívással szépen kiírja a standard kimenetre minden fontos részletét az exception. Végleges megoldásnak valami logoló keretrendszer használata ajánlott (van egy beépítve a standard könyvtárba is, ha nem akarsz külsőt). A log keretrendszernek már oda tudod adni az exception példányt, és kiírja a log fájlba (vagy ahová mondtad neki) a típust, az üzenetet és a stack trace-t.
    Mutasd a teljes hozzászólást!
  • Köszönöm, ma próblom
    (a hiba a kódban, megjegyzésként véletlenül maradt benne, de ezt is megjegyzem és így járok majd el)....
    Mutasd a teljes hozzászólást!
  • na helló...
    kipróbáltam és most már van valódi hibaüzenetem, de nem tudom mit kezdjek vele...
    java.io.IOException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException:
    unable to find valid certification path to requested target

    ha lenne valami minta-link ajánlatod azt megköszönném...
    (a teljes hibalista a mellékletben található)
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Hát ha jól értem, nem sikerül a Java kódnak ellenőriznie a túloldal tanúsítványát, és így nem hajlandó felépíteni a kapcsolatot.

    Ennél többet nem tudok segíteni, nem kellett még foglalkoznom SSL tanúsítványokkal. Hátha jár erre valaki, akinek van ilyesmivel tapasztalata.
    Mutasd a teljes hozzászólást!
  • köszi....
    ez amúgy a NAV -szervere lenne...

    Mutasd a teljes hozzászólást!
  • Sziasztok...
    A mellékelt kivétel-lánc tetején szereplő üzenet lénygét tekintve a neten, csak 2010 előtti (teljesen azonos) üzenetekre adott válaszokat/megoldásokat találok de azok mind a http_1 vagy 1.1-re alkalmazhatók (vagy nem?)....
    Nem tudom kitalálni mi lehet a probléma !

    Örömmel venném, ha olvas olyan valaki, aki már az új, a HTTP2 protokollt használva küldi az xml adatokat a NAV felé (ekaer/online számla mindegy) és fogadja a válasz xml-t, megmutatná azt a 4-5 programsort, amitől neki ez működik.
    Mutasd a teljes hozzászólást!
    Csatolt állomány
  • Hello!

    Az SSL tanúsítvány le van töltve a gépedre a NAV-tól?
    Mutasd a teljes hozzászólást!
  • Nem hinném... biztosan nincs.
    Talán lehet, hogy tényleg ez a probléma?
    Mutasd a teljes hozzászólást!
  • Köszönöm.
    Egyelőre félretettem a HTTP2 osztályt, visszateszem a HTTP_1_1-et, ezzel működik.
    Majd ha a teljes rendszer kész, akkor újra előveszem a kérdést.
    .. de mert utána olvastam és több helyen is erre utalnak, ez lesz a probléma...

    köszönöm mindenkinek a segítségét!
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd