Przeszukałem wiele miejsc dla innych osób, które poradziły sobie z tym problemem HttpRetryException, ale wszystkie, które znalazłem, napotkały na niektóre usługi Apache o nazwie CXF, których nie używam. Używam połączenia java.net.HttpURLConnection. Tworzę połączenie, używam setRequestProperty dla "Authorization", otrzymuję strumień wyjściowy, piszę kilka bajtów, a następnie próbuję odczytać wejściowy strumień odpowiedzi. Zazwyczaj to działa, ale czasami otrzymuję wyjątek wspomniany powyżej. Nie mogę uniknąć przesyłania strumieniowego, ponieważ czasami muszę zapisywać większe pliki niż te, które można przechowywać w pamięci, a w każdym razie większość znalezionych wyników wyszukiwania wskazuje, że nie jest to prawdziwy problem. Zwykle dają rozwiązania zgodne z bindingProvider.getRequestContext().put(BindingProvider.USERNAME_PROPERTY, "username"); bindingProvider.getRequestContext().put(BindingProvider.PASSWORD_PROPERTY, "password");
Nie używam cxf lub jakiegokolwiek innego opakowania przez HttpURLConnection i nie mam żadnego odniesienia do usługi lub wiązania. A nazwa użytkownika i hasło ustawione za pomocą setRequestProperty działają poprawnie dla uwierzytelniania przez większość czasu. Chciałbym móc powiedzieć, jakie warunki wstępne są konieczne, aby rzetelnie odtworzyć błąd, ale jak dotąd został on trafiony lub pominięty.Unikaj błędów "Nie można ponowić próby uwierzytelnienia serwera, w trybie strumieniowym", bez udziału CXF.
Odpowiedz
Jest tylko jedno miejsce w JDK, w którym jest zgłaszany java.net.HttpRetryException
, i to w przypadku, gdy używane jest połączenie HttpURLConnection i próbuje ono wykonać przekierowanie (patrz sun.net.www.protocol.http.HttpURLConnection. followRedirect())
W zasadzie serwer odpowiedział na kod stanu HTTP 3xx (z wyjątkiem 304 i 306), a teraz próbuje przejść do lokalizacji podanej przez nagłówek HTTP Location:
. Ale ponieważ transmisja strumieniowa jest włączona, nie może śledzić przekierowania.
spróbuj ustawić java.net.HttpURLConnection.setInstanceFollowRedirects(false)
Chociaż wolałbym sprawdzić dlaczego serwer wysyła przekierowania HTTP w pierwszej kolejności. Z Twojego opisu rozumiem, że przesyłasz większy plik za pomocą protokołu HTTP POST, czy to prawda?
- 1. Tomcat 7 uzyskiwanie SSLv2Hello jest wyłączony błąd podczas próby uwierzytelnienia klienta ssl serwera
- 2. Przesyłanie plików bez powodowania błędów po stronie serwera podczas procesu
- 3. Nie można zainicjować serwera proxy - nie Session
- 4. Uzyskiwanie "Nieprawidłowy parametr: redirect_uri" próby uwierzytelnienia NODE.JS z KeyCloak
- 5. Nie można uruchomić serwera uWSGI bez virtualenv (ImportError)
- 6. Sposób korzystania z Tika w trybie serwera
- 7. Zmiana uwierzytelnienia serwera Kerberos/SPNEGO w języku Java8
- 8. MediaMetadataRetriever na strumieniowym źródle
- 9. Solidny haskell bez błędów
- 10. AVAssetExportSession Nie można utworzyć pliku błędów -12115
- 11. .NET WebClient wysyła żądanie bez uwierzytelnienia najpierw
- 12. Bez funkcji vsync bez składu Aero; nie można włączyć interfejsu Aero w trybie CreateDesktop() Wykonanie pulpitu
- 13. Axios (w trybie natywnym w trybie React) nie wywołujący serwera w localhost
- 14. Nie można utworzyć błędów StyleCop jako błędów kompilacji (zamiast ostrzeżeń)
- 15. Nie udało się HttpPost z powodu "Nie można ponowić żądania z nieodwracalnym obiektem żądania"
- 16. Python - smtp wymaga uwierzytelnienia
- 17. IIS 8 - 500 dzienników błędów serwera
- 18. Nie można znaleźć serwera "dbo" w sys.servers
- 19. Jak utworzyć rozszerzenie udziału w iOS8 bez interfejsu użytkownika
- 20. Unikaj auth popup HTTP w rozszerzeniu chrome (digest)
- 21. Nie można uruchomić serwera Cassandra DataStax DDC
- 22. Nie można zmienić szerokości niestandardowych belek błędów
- 23. Podgląd obrazów w trybie Orgmode (bez eksportowania)
- 24. Nie można zainstalować pakietów z błędem wewnętrznego serwera NuGet - 500
- 25. Symfony: Właściwość nie istnieje - 500 błędów serwera wewnętrznego - ReflectionException
- 26. jquery Nie można odczytać właściwości "done" z undefined - unikaj tego
- 27. Sprawdzanie poprawności XML po stronie serwera za pomocą CXF Webservice
- 28. PHP nie wyświetla błędów - Wewnętrzny błąd serwera (500)
- 29. Obsługa błędów STL bez wyjątków
- 30. Pobierz tekst ze schowka za pomocą GetText - unikaj błędów w pustym schowku
Dzięki za odpowiedź. Zastosuj przekierowania jest już ustawione na false. Masz rację, że przesyłam pliki z> B: Integer.MAXINT. – WindowsWeenie