2010-06-15 4 views
1

Я поместил свой проект в каталог tomcat_home/webapps /. Структура: project_name/WEB-INF/classes. в WEB-INF я поместил свой дескриптор web.xml. Проблема в том, что когда я пытаюсь запустить приложение, он не находит файлы. Ошибка:Как запустить приложение в Tomcat?

The requested resource() is not available. 

Мой контент web.xml является:

<?xml version="1.0" encoding="ISO-8859-1"?> 
<web-app xmlns="http://java.sun.com/xml/ns/j2ee" 

    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd" 

    version="2.4"> 
<servlet> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-class>Ch1Servlet</servlet-class> 
</servlet> 

<servlet-mapping> 
    <servlet-name>Chapter1 Servlet</servlet-name> 
    <servlet-url>/Serv1</servlet-url> 
</servlet-mapping> 
</web-app> 

Я также перезапустить сервер, но он не хочет работать. Любые предложения?

+1

Вы проверили, успешно ли установлено приложение из журналов tomcat ?. Вы можете удалить пробел из имени сервлета и затем перепроверять? – techzen

ответ

1

Имеет ли ваш сервлет пространство имен. В теге нужно полностью определить Ch1Servlet класса, т.е. my.code.Ch1Servlet

--- Дополнительный после прочтения комментариев -----

Хорошо, попробуйте это. Создайте контекст для вашего webapp. Создайте файл с именем project_name.xml и поместите в него:

<Context path="/Serv1" docBase="webapps/project_name" 
     reloadable="true" debug="0" privileged="true"> 
</Context> 

Теперь поместите файл XML в каталоге WebApps.

Если развертывается WAR замените docBase как «WebApps/project_name.war»

+0

Это по умолчанию namspace – artaxerxe

+0

Этого недостаточно - у сервлета есть пакет? Если это так, полный путь к пакету должен предшествовать названию сервлета, как сказал Адриан. –

+0

Это не имеет значения, если вы не поместите свой сервлет в пакет, tomcat будет искать его на том, что, по его мнению, является его текущим каталогом. Поместите его в пакет и укажите пакет из тега класса сервлета. –

0

Если вы используете файл server.xml по умолчанию, который поставляется с Tomcat, вам не нужно изменять его, чтобы просто запустить ваше веб-приложение. Вы пытались получить доступ к нему со следующего URL-адреса: http://localhost:8080/project_name/

+0

Да, но не работает – artaxerxe

0

Похоже, что вам нужно положить ваш сервлет в пакете, например, com.me.Ch1Servlet. Затем измените объявление класса сервлета на <servlet-class>com.me.Ch1Servlet</servlet-class>

+0

Я тоже сделал это после сообщения Адриана, но также не работает – artaxerxe

1

Вы должны бросить то, что вы имеете прочь, снова начать и пройти через это очень осторожно:

http://tomcat.apache.org/tomcat-6.0-doc/appdev/index.html

Что вы узнали до сих пор?

  1. Ваш сервлет .класс должен быть в пакете. Вы должны увидеть WEB-INF/classes/com.foo.Bar.class, если ваш класс Bar.jar с package com.foo; наверху
  2. Составьте свое приложение в WAR с именем MyApp и поместите его в/webapps, чтобы его развернуть.
  3. URL-адрес должен быть http://localhost:8080/MyApp/Bar, если карта com.foo.Bar в/Бар

Заставлять людей делать предложения, и повторять, что «она не работает», не собирается, чтобы вы где вам нужно быть.

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