Исключение ввода-вывода Java для DOMParser

Я пытаюсь разобрать XML-файл на Java с помощью парсера DOM со следующим кодом:

import java.io.File;
import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;
import org.w3c.dom.Document;

[...]

File file = new File("some/path");
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
DocumentBuilder db = dbf.newDocumentBuilder();
Document document = db.parse(file);

И последняя строка (при вызове функции .parse ()) выдает ошибку:

java.io.IOException: Server returned HTTP response code: 403 for URL: http://testng.org/testng-1.0.dtd

Как мне исправить эту ошибку?

Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
0
217
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Вы пытаетесь получить доступ к URL-адресу в своем коде? Код состояния HTTP 403 означает, что доступ запрещен, обычно это может произойти, когда заголовок пользовательского агента не установлен. Вы можете установить его следующим образом:

URLConnection connection = new URL("https://www.google.com/search?q = " + query).openConnection();
connection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.95 Safari/537.11");

Пожалуйста, обратитесь к это для получения более подробной информации.

Я не пытаюсь получить доступ к каким-либо URL-адресам в коде, поэтому я предполагаю, что ошибка как-то связана с одним из пакетов, но я не уверен, как ее исправить

user2963365 31.05.2018 01:45

@ user2963365 Вы должны изучить трассировку стека ошибки, чтобы прийти к номеру строки, отправляющей этот запрос на вышеупомянутый URL.

Mikaal Anwar 31.05.2018 01:50
Ответ принят как подходящий

Он пытается загрузить testng-1.0.dtd, DTD для вашего XML-документа.

Загрузите его самостоятельно из любого места, где вы можете его получить, и настройте DocumentBuilder для его поиска там, предоставив EntityResolver для DocumentBuilder.setEntityResolver().

Или исправьте свой HTTP-прокси. Сам документ не защищен авторизацией, что и означает 403.

Другие вопросы по теме