Почему при работе с веб-фрагментами возникает ошибка «Преждевременный конец файла» - PullRequest
3 голосов
/ 24 января 2012

Я создал 2 проекта maven, веб-приложение fxserver2 и веб-библиотека SleepyFox .

Затем я создал файл src / main / resources / META-INF / web-фрагмент.xml в SleepyFox , который Я хотел бы, чтобы меня автоматически включили в мой fxserver web.xml

К сожалению, я получаю сообщение об ошибке, похожее на это:

24-Jan-2012 19:38:50 org.apache.catalina.startup.HostConfig deployDescriptor
INFO: Deploying configuration descriptor fxserver2.xml from /Users/sparkyspider/Tomcat/apache-tomcat-7.0.12/conf/Catalina/localhost
24-Jan-2012 19:38:50 org.apache.tomcat.util.digester.Digester fatalError
SEVERE: Parse Fatal Error at line 1 column 1: Premature end of file.
org.xml.sax.SAXParseException: Premature end of file.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195)
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.fatalError(ErrorHandlerWrapper.java:174)

, а затем

24-Jan-2012 19:38:50 org.apache.catalina.startup.ContextConfig parseWebXml
SEVERE: Parse error in application web.xml file at jndi:/localhost/fxserver2/WEB-INF/lib/SleepyFox-0.9.jar!/META-INF/web-fragment.xml
org.xml.sax.SAXParseException: Premature end of file.
    at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:195) 

Вторая ошибка указывает на то, что правильный файл действительно читается, но я понятия не имею, почему он дает мне преждевременную ошибку конца файла.

Я включил свой fxserver2 web.xml

<?xml version="1.0"?>
<web-app>   
    <session-config>
        <session-timeout>
            30
        </session-timeout>
    </session-config>
</web-app>

А также мой SleepyFox web-фрагмент.xml

<web-fragment>
    <listener>
        <listener-class>com.foxbomb.fxserver2.ApplicationContext</listener-class>
    </listener>
</web-fragment>

Любой совет с благодарностью.

Ответы [ 2 ]

9 голосов
/ 24 января 2012

Я думаю, вам нужно упомянуть схему web-app_3_0.xsd в вашем основном файле web.xml, который также автоматически загружает web-common_3_0.xsd.Эта общая схема имеет такие элементы, как session-config>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
         xmlns="http://java.sun.com/xml/ns/javaee"
         xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee 
         http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">
2 голосов
/ 24 января 2012

Первая ошибка выглядит так: /Users/sparkyspider/Tomcat/apache-tomcat-7.0.12/conf/Catalina/localhost/fxserver2.xml либо не найден, либо пуст.(Бит "строка 1 столбца 1" заставляет меня думать, что он пуст.) Убедитесь, что файл присутствует, имеет содержимое и имеет соответствующие права доступа, чтобы его можно было прочитать.

...