Tomcat6 + Ubuntu + Сервлет - PullRequest
       14

Tomcat6 + Ubuntu + Сервлет

0 голосов
/ 18 ноября 2009

Я пытаюсь сделать сервлет.

Я установил tomcat6 в Ubuntu с примерами администратора и документами. Я могу запустить приведенные примеры. Но когда я пытаюсь сделать свой собственный сервлет, он не работает.

Я сделал следующие шаги

Под корнем я создаю папку с

-ROOT
----myapp
------WEB-INF
---------classes

Я сделал два файла, один - index.html, в котором есть кнопка и действие в форме для вызова сервлета. Второй файл .java. Я скомпилировал файл .java и .class готов. Так что теперь дерево выглядит как

-ROOT
----myapp
------index.html
------WEB-INF
---------classes
-----------TestServ.java
-----------TestServ.class

Теперь я открываю это в браузере, используя http://localhost:8080/myapp

Появляется на странице index.html с кнопкой. Но когда я нажимаю на кнопку, он говорит

Ошибка 404: http://localhost:8080/myapp/TestServ не найден !!

Я не знаю, где я иду не так. Я тоже установил CATALINA_HOME. Но все же эта проблема продолжается.

Ответы [ 2 ]

6 голосов
/ 18 ноября 2009

Вам необходимо создать файл web.xml в каталоге WEB-INF и определить отображение сервлета в файле web.xml, чтобы URL-адрес myapp / TestServ перенаправлялся в класс сервлета TestServ.

Здесь - это страница, описывающая web.xml, и содержит пример и элементы, которые необходимо настроить. Для вашего класса эти элементы, вероятно, будут выглядеть примерно так:

<servlet>
    <servlet-name>testServ</servlet-name>
    <servlet-class>TestServ</servlet-class>
</servlet>

<servlet-mapping>
     <!-- For any URL starting with /content/, the rewriter servlet will be called -->
     <servlet-name>testServ</servlet-name>
     <url-pattern>/TestServ</url-pattern>
</servlet-mapping> 
1 голос
/ 18 ноября 2009

Вы не должны развертывать свой код под ROOT.

У вас не должно быть классов Java в пакете по умолчанию. Попробуйте поместить свой TestServ.java в пакет.

В вашем развертывании НЕ должно быть никаких файлов .java.

Вы должны правильно зарегистрировать свой сервлет в web.xml. Включить сопоставление с конкретным URL.

Лучше всего создать WAR-файл с именем myapp.war, который включает в себя WEB-INF / classes и WEB-INF / lib и web.xml для вашей ситуации. Поместите это в Tomcat / webapps и запустите контейнер. Если вы правильно зарегистрировали свой сервлет, вы сможете получить к нему доступ через http://localhost:8080/myapp/TestServ.

Я бы внимательно прочитал документы по развертыванию .

...