|
|
|
| Здравствуйте.
Есть код Java, заключенный в архив jar.
Этот код вызывается в качестве апплета.
HTML-код:
<body>
<applet code="abies_studio.Main" archive="interface/java/abies_studio.jar" width="1000" height="200">
Message
</applet>
</body>
|
В апплете запрашивается и обрабатывается находящийся на том же сервере файл xml.
Все работает, до тех пор, пока на сервер не помещается файл .htaccess следующего содержания:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_URI} !applications/
RewriteCond %{REQUEST_URI} !install.php
RewriteCond %{REQUEST_URI} !reader.php
RewriteRule !\.(jpg|jpeg|png|gif|ico|bmp|swf|js|css|xml|dtd|xsl|txt|sql|doc|xls|zip|rar|jar)$ index.php [L]
|
После этого консоль Java сообшает следующее:
javax.xml.parsers.FactoryConfigurationError: Provider <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">
|
Т.е., апплет перестает получать в ответ на запрос xml-файл и переадресовывается, на общих основаниях, к index.php, который и отдает ему HTML-код, начинающийся с <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.1 Transitional//EN">.
Адрес запроса xml-файла верный и, будучи введен в адресную строку, благополучно результирует xml-код уже при включенном .htaccess.
Парсинг в Java вызывается следующим образом:
DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
try {
DocumentBuilder db = dbf.newDocumentBuilder();
Document doc = db.parse(filePath);
...
|
filePath содержит URL XML-файла.
Может быть, апплет вызывает иное HTTP-соединение, нежели браузер, и поэтому даже при верном URL получает от сервера переадресацию?
Большое спасибо всем ответившим.
ps. Еще любопытный момент: будучи запущен непосредственно на локальной машине или через локальный файл html, код апплета благополучно скачивает xml и после установки .htaccess на сервере. Проблема возникает, только если апплет загружается с сервера. | |
|
|