Получение запроса и создание HTTP-ответа с использованием Tomcat - PullRequest
0 голосов
/ 14 апреля 2011

В настоящее время я пытаюсь использовать встроенный Tomcat для своего приложения и пытаюсь настроить его для получения URL-адреса http-запроса.

Некоторая справка:

Я использую тот же код, что и в первом ответе на пост здесь: Как вставить Tomcat 6?

Единственное изменение, которое я сделал:

private String   catalinaHome = "/home/xyz/tomcat"; // This dir is created and has full access permissions

Также я смотрю на: http://tomcat.apache.org/tomcat-5.5-doc/catalina/docs/api/org/apache/catalina/startup/Embedded.html

Я не могу найти никаких файлов server.xml и tomcat-users.xml, поэтому я создал файл tomcat-users.xml, поскольку получаю исключение: файл базы данных памяти / home / xyz / tomcat / conf / tomcat- users.xml не может быть прочитан.

tomcat-users.xml:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
  <role rolename="tomcat"/>
  <role rolename="role1"/>
  <user username="tomcat" password="tomcat" roles="tomcat"/>
  <user username="both" password="tomcat" roles="tomcat,role1"/>
  <user username="role1" password="tomcat" roles="role1"/>
</tomcat-users>

Код использует container.setRealm (new MemoryRealm ()); Отсюда следует: http://tomcat.apache.org/tomcat-4.1-doc/catalina/funcspecs/fs-memory-realm.html, что у меня должен быть файл server.xml, и он уже должен быть создан по умолчанию.

1] Нужно ли создавать server.xml, что должно быть в нем по умолчанию? Я поставил файл с настройками по умолчанию: http://www.akadia.com/download/soug/tomcat/html/tomcat_server_xml.html, но просто хочу знать, что нужно делать?

2] Когда я получаю доступ к http://localhost:8089/mywebapp/index.html,, все, что я получаю, - запрошенный ресурс () недоступен, хотя у меня есть страница index.html в "webappDir" в коде

3] Моя единственная потребность от встроенного tomcat - перехватывать, чтобы URL передавался tomcat в моем коде. Затем я могу проанализировать URL-адрес [сделать свое дело], затем создать полезную нагрузку http и отправить ответ http обратно.

Буду признателен за любые указатели, особенно за 3]?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 14 апреля 2011

Хорошо, для вашего первого вопроса, вам не нужен server.xml. Если вы проверите код вашего первоначального поста, они устанавливают параметры там. Это то, что server.xml будет инкапсулировать. В действительности то, что происходит, - это то, что Tomcat будет анализировать server.xml для свойств, которые вы определяете в своем Java-файле, где вы запускаете вызов catalina для запуска. Но поскольку он встроен, вы устанавливаете все эти параметры в своем классе.

По второму вопросу проверьте каталог журналов и посмотрите, что анализируется. Что-то происходит после запуска вашего сервиса, потому что он уже должен перенаправить вас, как только вы позвоните в порт. в любом случае, попробуйте http://localhost:8089 и посмотрите, что вы получите в ответ от кота. Он должен дать вам ответ от самого сервера. если вы делаете это так "http://localhost:8089/mywebapp/index.html", вы пытаетесь получить доступ к созданному контексту, и это может быть неправильно настроено, но это только предположение.

Попробуйте сначала и скажите мне, что вы получите обратно. с этого момента мы можем устранить неполадки и посмотреть, смогу ли я помочь в этом смысле.

0 голосов
/ 14 апреля 2011

Быстрый вопрос, это windows или linux, на который вы устанавливаете?Если это Linux, файл конфигурации находится обычно в / etc / tomcat6.(по крайней мере на убунту они есть).Ответьте с версией, которую вы установили.Я мог бы помочь вам.Полагаю, мне следует немного подробнее остановиться здесь.Tomcat также является службой в Linux, поэтому в Ubuntu вам нужно запустить tomcat, чтобы получить к нему доступ.

$: sudo service tomcat6 start

, затем он запустит tomcat на порту 8080 (обычно, если не изменился) вашего локального хоста.следовательно, вы вводите localhost: 8080, чтобы получить доступ к веб-сайту для настройки tomcat, который выдает подсказку «Это работает».Дайте мне знать, если у вас есть еще вопросы, я постараюсь ответить, насколько мне известно

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...