2013-02-13 5 views
-2

При запуске Tomcat, я получил эту ошибку:Tomcat не запускается (Struts 2 Jquery вопроса)

Caused by: java.io.FileNotFoundException: http://struts.apache.org/dtds/struts-2.3.dtd 
    at sun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1401) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.setupCurrentEntity(XMLEntityManager.java:654) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startEntity(XMLEntityManager.java:1292) 
    at com.sun.org.apache.xerces.internal.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:1259) 
    at com.sun.org.apache.xerces.internal.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:260) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.dispatch(XMLDocumentScannerImpl.java:1169) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$DTDDriver.next(XMLDocumentScannerImpl.java:1065) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl$PrologDriver.next(XMLDocumentScannerImpl.java:978) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625) 
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116) 
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819) 
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748) 
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123) 
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208) 
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525) 
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:392) 
    at com.opensymphony.xwork2.util.DomHelper.parse(DomHelper.java:113) 
    ... 28 more 

Мой код работает до последнего дня. Сегодня эта ошибка возникает, когда я пытаюсь запустить tomcat. Я использую файлы struts2-core-2.2.1.1.jar и struts2-jquery-plugin-3.3.1.jar в своем проекте.

Почему мой код просто перестает работать? Тот же код работает до вчерашнего дня.

Также ссылка http://struts.apache.org/dtds/struts-2.3.dtd дает 404 ошибочных данных. Файл не найден в этом месте.

ответ

1

Ваш код не должен пытаться получить доступ к dtd онлайн.

Вы не должны считать ОТД URI является действительным URL, даже если это чаще всего также URL.

Вы можете предоставить локальный доступный путь к DTD.

Вообще говоря, вы не должны предполагать, что ваш сервер имеет доступ к «интернету» для таких вещей, это ненадежно.

EDIT: использование стойки 2.3.8 может решить проблему.

http://mvnrepository.com/artifact/org.apache.struts/struts2-core/2.3.8 
+0

Но этот url используется в struts-plugin.xml из файла struts2-jquery-plugin-3.3.1.jar. Если мне нужно изменить этот адрес на локальный файл dtd, форма, где я найду этот файл dtd. Я искал этот файл, но не нашел его. – Abhishek

+1

Возможно, вы этого не сделаете. У меня была одна и та же проблема. Jquery-plugin-3.3.1.jar использует struts2.3.dtd. Я использовал struts 2.2.1, который не имеет этого файла (файлы dtd находятся в struts-core.jar). Я даже попытался разогнать версию, которую я имею, создав файл struts-2.3.dtd, скопировав/переименовав последнюю и воссоздать банку. Все еще не сработало :( – user497087

0

У меня была точно такая же проблема вчера, когда ранее работающее веб-приложение перестало работать с вышеуказанной ошибкой. После большой царапины головы это была проблема с 12 февраля 2013 года по 13 февраля 2013 года и была вызвана миграционными серверами проекта Apache Struts. URL-адрес http://struts.apache.org/dtds/struts-2.3.dtd теперь работает снова с сегодняшнего утра (06:00 по Гринвичу) - однако попытка загрузить последнюю версию Struts (2.3.8) дает мне 403 Запретный ответ.

+0

Кажется, что это ошибка команды struts (но, честно говоря, я не исследовал, проверял ли код ошибки, передавая удаленный url, чтобы получить поток ipunt в библиотеке strtus). это так, я бы рекомендовал сообщить об ошибке «команде ошибок». Это слишком хрупкий (и совершенно бесполезный) дизайн, на мой взгляд, –

+0

Struts использует только URL-адрес, если он не может найти DTD с ссылкой в ​​struts -core.jar (в соответствии с документацией). В этом случае Struts-2.2.1.core не содержит struts-2.3.dtd, на который ссылается файл plugin.xml в пакете struts2-jquery-3.3.1. – user497087

+0

И так , вы могли бы ожидать Struts-2.3.core, чтобы исправить эту проблему. Попробовали? –

Смежные вопросы