Невозможно найти DTD, исключение ConnectException

Наше корпоративное приложение не работало в помещениях клиента с:

Severe:   Exception while deploying the app [v24testear] : Unable to locate the DTD to validate your deployment descriptor file [META-INF/sun-ejb-jar.xml] in archive [V24Handler-ejb_jar]. Please make sure the DOCTYPE is correct (no typo in public ID or system ID) and you have proper access to the Internet.
java.net.ConnectException: Connection timed out: connect

Это произошло потому, что у них была параноидальная настройка сети, и в качестве обходного пути нам пришлось удалить следующее объявление из sun-ejb-jar.xml:

<!DOCTYPE sun-ejb-jar PUBLIC "-//Sun Microsystems, Inc.//
DTD GlassFish Application Server 3.0 EJB 3.1//EN" 
"http://www.sun.com/software/appserver/dtds/sun-ejb-jar_3_1-0.dtd">

Мой вопрос заключается в следующем. Glassfish на самом деле обладает локальной копией этого dtd в glassfish/lib/dtds/sun-ejb-jar_3_1-0.dtd, Здравый смысл подсказывает, что Glassfish должен предоставлять собственный распознаватель сущностей, который будет отображать стандартные схемы в локальные файлы. Однако я не вижу попыток открыть этот локальный файл. С другой стороны, процесс Java обращается к sun-web-app_2_5-0.dtd, Этот механизм существует, но сломан? Иначе, с какой целью dtds/ справочник служить?

0 ответов

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