Странное поведение Tomcat и Axis Webservice - PullRequest
1 голос
/ 05 марта 2009

У меня есть простой веб-сервис, развернутый на Tomcat с использованием Apache Axis.

Если я получаю доступ к веб-сервису как http://localhost:8080/webservices/TransactionService, я вижу обычное сообщение

TransactionService

Привет, это сервис AXIS!

Возможно, здесь будет форма для вызова службы ...

показывает, что веб-сервис доступен и готов к использованию.

Однако, если я получаю к нему доступ как http://10.0.0.1:8080/webservices/TransactionService (фактический IP-адрес компьютера - 10.0.0.1. Я получаю к нему доступ на той же машине, что и выше, на хосте tomcat):

HTTP Status 404 - / webservices / TransactionService

-------------------------------------------- ------------------------------------

тип: Отчет о состоянии

сообщение: / webservices / TransactionService

описание: Запрошенный ресурс (/ webservices / TransactionService) недоступен.

-------------------------------------------- ------------------------------------

Apache Tomcat / 5,5

В логах кота ничего нет

Если я попытаюсь развернуть на Jetty, все будет хорошо.

Есть ли объяснение этому? Любые указатели приветствуются.

Ответы [ 2 ]

3 голосов
/ 05 марта 2009

Tomcat может прослушивать разные имена хостов / IP-адреса по-разному. В частности, каждый хост / IP может иметь свой собственный рабочий каталог:

<Host name="localhost" workDir="/workdir">
  ...
</Host>

Приложение, развернутое на одном рабочем каталоге, не будет доступно хосту с другим рабочим каталогом.

Проверьте вашу конфигурацию.

ОБНОВЛЕНИЕ : если имя указано как имя, а не IP, убедитесь, что это имя разрешено и до 10. * address.

Кроме того, по умолчанию используется один из хостов. Теперь он отвечает на все запросы, независимо от того, на какой хост они нацелены, если нет конкретного хоста. Для вашей настройки вы можете оставить только один активный.

0 голосов
/ 05 марта 2009

Я не думаю, что изменение конфигурации Tomcat - это ответ. Мне не нужно делать такую ​​вещь, чтобы использовать мой локальный IP-адрес или localhost.

Может ли это быть так же просто, как дополнение к вашему файлу hosts? У меня есть мой в c: / windows / system32 / drivers / etc / hosts, и там есть запись для "127.0.0.1 localhost" в нем.

...