Я пытаюсь разобрать 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
Как мне исправить эту ошибку?




Вы пытаетесь получить доступ к 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");
Пожалуйста, обратитесь к это для получения более подробной информации.
@ user2963365 Вы должны изучить трассировку стека ошибки, чтобы прийти к номеру строки, отправляющей этот запрос на вышеупомянутый URL.
Он пытается загрузить testng-1.0.dtd, DTD для вашего XML-документа.
Загрузите его самостоятельно из любого места, где вы можете его получить, и настройте DocumentBuilder для его поиска там, предоставив EntityResolver для DocumentBuilder.setEntityResolver().
Или исправьте свой HTTP-прокси. Сам документ не защищен авторизацией, что и означает 403.
Я не пытаюсь получить доступ к каким-либо URL-адресам в коде, поэтому я предполагаю, что ошибка как-то связана с одним из пакетов, но я не уверен, как ее исправить