2013-11-25 3 views
0

У меня есть базовый сервлет.Web.xml вызывает сбой Tomcat7

Я использую tomcat 7 для его запуска.

Сервер содержит 3 файла:

  1. file.jsp - Печать даты

  2. WebController - сервлет.

  3. web.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"> 
    <servlet> 
      <servlet-name>file.jsp</servlet-name> 
      <jsp-file>file.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
      <servlet-name>file.jsp</servlet-name> 
      <url-pattern>/about</url-pattern> 
    </servlet-mapping> 
</web-app> 

Когда я удалить <servlet> и <servlet-mapping> из файла web.xml, сервлет работает хорошо.

web.xml Когда это, как указано выше, я получаю следующее сообщение об ошибке:

'Staring Tomcat v7.0 Server at localhost' has encountered a problem. 

Server Tomcat v7.0 Server at localhost failed to start. 

Я использую затмение. в чем проблема в моем файле web.xml? заранее спасибо!

Edit:

Это мой проект:

enter image description here

Update:

Текущая версия 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"> 
    <servlet> 
      <servlet-name>file.jsp</servlet-name> 
      <jsp-file>/file.jsp</jsp-file> 
    </servlet> 

    <servlet> 
     <servlet-name>WebController</servlet-name> 
     <servlet-class>WebController</servlet-class> 
    </servlet> 

    <servlet-mapping> 
      <servlet-name>file.jsp</servlet-name> 
      <url-pattern>/about</url-pattern> 
    </servlet-mapping> 
</web-app> 
+0

возможно дубликат: http://stackoverflow.com/questions/6642745/web-xml-ignoring-main-jsp-file где вы положили файлы jsp – phury

+0

@ph. файл jsp находится в той же папке с 'web.xml', в папке' WEB-INF'. – Billie

ответ

0

Один возможный формат для отображения сервлетов в web.xml файл выглядит следующим образом:

<servlet> 
    <servlet-name>com.example.file_jsp</servlet-name> 
    <servlet-class>com.example.file_jsp</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>com.example.file_jsp</servlet-name> 
    <url-pattern>/file.jsp</url-pattern> 
</servlet-mapping> 

Имя класса происходит от названия файла JSP и эта часть вашей build.xml:

<jasper2 
    validateXml="false" 
    uriroot="web" 
    package="com.example" 
    webXmlFragment="build/web/WEB-INF/generated_web.xml" 
    outputDir="build/src" /> 
+0

OP не отображает «Servlet», он отображает файл 'JSP'. – Masudul

+0

Я уже давно компилирую свой JSP, я честно забыл, что существует другой способ: P (я удалил «правильный путь», но оставил ответ в случае, если он будет полезен) –

2

Ваш файл JSP не должен находиться в WEB-INF. Поместите его в корень вашего проекта

Update 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"> 
    <servlet> 
     <servlet-name>file.jsp</servlet-name> 
     <jsp-file>/file.jsp</jsp-file> 
    </servlet> 
    <servlet-mapping> 
     <servlet-name>file.jsp</servlet-name> 
     <url-pattern>/about</url-pattern> 
    </servlet-mapping> 
</web-app> 

вот как ваш проект должен выглядеть следующим образом:

/myjspapp 
    /file.jsp 
    /WEB-INF 
     /web.xml 

теперь вы можете получить доступ к JSP на следующий адрес: localhost:8080/myjspapp/about

+0

Теперь он не распознается, HTTP Status 500 - missing jspFile: [/file.jsp] – Billie

+0

Я обновил сообщение и прикрепил картинку с моим проектом, не могли бы вы рассказать мне, что еще не так? У меня есть тот же «xml.web», что и вы, но я получаю «HTTP Status 500 - отсутствует jspFile: [/file.jsp]» при доступе к http: // localhost: 8080/WebCoupons/about' – Billie

+0

У вас есть ' /file.jsp' (с косой чертой) в 'web.xml'? – phury

0

Это ответ аналогичен ph, но, как вы сказали, на нем давали вам статус 500, так что работала проблема для вас ...

Попробуйте поместить файл JSP в папку webcontent (только для eclipse), а затем следуйте вашему примеру.

Я работал над вашим примером, и он дает мне правильный выход.

Ниже моя структура проекта в затмении: -

enter image description here

Ниже настроен файл web.xml: - enter image description here

После запуска сервера, и запрашивающий URL Pattern "/ about" Я получаю свой вывод JSP.

Пожалуйста, попробуйте и дайте мне знать ... Надеюсь, что это помогает

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