2013-03-22 2 views
1

В какой-то момент создания веб-приложения с использованием MyFaces мои лица-config.xml и web.xml начали бороться, но, похоже, долго после того, как я внес какие-либо изменения. Я экспериментировал с разными банками и разными конфигурациями для обоих, но не могу ничего установить правильно. Хотя я чувствую, что я попробовал все (кроме решения), вот один пример кода:Проблемы с конфигурацией web.xml/faces-config.xml

web.xml:

<?xml version="1.0" encoding="UTF-8"> 
<web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> 
<session-config> 
    <session-timeout> 
     30 
    </session-timeout> 
</session-config> 
<welcome-file-list> 
    <welcome-file>index.jsp</welcome-file> 
</welcome-file-list> 

интро лицами-config.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<faces-config 
xmlns="http://java.sun.com/xml/ns/javaee" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd" 
version="2.0"> 

и я получаю эту ошибку:

SEVERE [org.apache.commons.digester.Digester] (MSC service thread 1-2) Parse Error at line 2 column 14: 
Document is invalid: no grammar found.: org.xml.sax.SAXParseException: Document is invalid: no grammar found. 
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196) 
at org.apache.xerces.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:132) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:390) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:322) 
at org.apache.xerces.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:281) 
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:136) 
at org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(XMLNSDocumentScannerImpl.java:733) 
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(XMLDocumentFragmentScannerImpl.java:1754) 
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:324) 
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:845) 
at org.apache.xerces.parsers.XML11Configuration.parse(XML11Configuration.java:768) 
at org.apache.xerces.parsers.XMLParser.parse(XMLParser.java:108) 
at org.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1196) 
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:555) 
at org.apache.commons.digester.Digester.parse(Digester.java:1745) [commons-digester-1.8.jar:] 
at org.apache.myfaces.config.impl.digester.DigesterFacesConfigUnmarshallerImpl.getFacesConfig(DigesterFacesConfigUnmarshallerImpl.java:197) [myfaces-impl-1.1.8.jar:] 

, а также:

SEVERE [org.apache.commons.digester.Digester] (MSC service thread 1-2) Parse Error at line 2 column 14: 
Document root element "faces-config", must match DOCTYPE root "null".: org.xml.sax.SAXParseException: Document root element "faces-config", must match DOCTYPE root "null". 
at org.apache.xerces.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:196) 

Я иду с ума, почему это не работает. Является ли это очевидным, почему, и я скучаю по нему? Или проблема не в этих файлах, поэтому я должен попытаться изменить мои банки? Я использую JBOSS 7. Спасибо! Спасибо!

ответ

1

Я не являюсь опытом в MyFaces, но просматриваю некоторые другие сообщения, которые я видел в Интернете (и потому, что у вас есть пробелы в начале вашего исходного XML), я бы удостоверился, что там aren любые скрытые символы или лишние пробелы в XML-документе, которые могут вызвать проблемы.

Кроме того, возможно, я посмотрю, правильны ли значения в корневом элементе ваших faces-config.xml. В частности, я бы проверил значения для вашего xsi: schemaLocation. Я не очень хорошо знаком с тем, как работает этот конкретный парсер XML, но, судя по вашим исключениям, он может пытаться проверить схему с предоставленными URL-адресами и сбой. Похоже, что у вас есть два URL-адреса, которые могут быть недействительными. Второй URL-адрес фактически разрешает действительный файл определения XSD. Попытайтесь ограничить это одним URL-адресом и посмотрите, не изменит ли это что-либо.

Надеюсь, что это поможет!

EDIT: Оказывается, возможно, я был дезинформирован. Элемент xsi: schemaLocation может иметь два значения, разделенные пробелом. Второй должен быть допустимым файлом схемы. Я бы проверял, что они на самом деле расположены правильно. Похоже, из вашего ответа они могут быть, но это стоит проверить.

+1

Спасибо! С вашего поста я обнаружил 3 ошибки, вызвавших это. Для кого-либо еще сначала убедитесь, что в ваших xml-файлах нет странных символов/пробелов, а затем убедитесь, что ваши банки не конфликтуют (уточняет, как ваше развертывание обрабатывает размноженные JSF-реализации), а затем убедитесь, что в папке lib есть папка ваш каталог WEB-inf. Я должен был вручную загрузить в некоторых баночках, чтобы зарегистрировать Application Factory – Glenninator

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