Развертывание GWT .war с сервлетом в Tomcat - PullRequest
1 голос
/ 11 декабря 2011

Я следовал учебному пособию по созданию примера приложения GWT: http://code.google.com/webtoolkit/doc/latest/tutorial/gettingstarted.html

Затем я хотел попробовать выставить сервлет для обслуживания некоторых данных JSON в соответствии с этим учебным пособием: http://code.google.com/webtoolkit/doc/latest/tutorial/JSON.html

Оба руководства очень понятны, и у меня не возникло проблем с его работой в Eclipse, работающем в режиме разработки.Я проверяю его, перейдя по следующему URL: http://localhost:8888/stockwatcher/stockPrices?q=ABC+DEF, который возвращает результаты json, как это было задумано в руководстве.Но теперь я хочу развернуть этот проект как файл войны и запустить его на своем собственном сервере Tomcat.Я нашел этот учебник по развертыванию преобразования проекта в файл .war: http://blog.elitecoderz.net/gwt-and-tomcat-create-war-using-eclipse-to-deploy-war-on-tomcat/2009/12/. Было ясно, что файл .war собран без ошибок, но после его развертывания мой сервлет для данных JSON не работает.Я просто получаю страницу 404, и ничего не происходит.Я также не вижу ничего в server.log.Кроме того, я пытаюсь развернуть это в Tomcat 6, если это что-то меняет.

Ответы [ 4 ]

1 голос
/ 12 декабря 2011

Я понял это; это была проблема с тегом url-pattern в моем файле web.xml.

Вот что у меня было:

<url-pattern>/stockwatcher/stockPrices</url-pattern>

но это привело к тому, что сервлет stockPrices был доступен с этого URL: http://127.0.0.1:8080/stockwatcher/stockwatcher/stockPrices?q=ABC

Вместо этого я изменил его на:

<url-pattern>/stockPrices</url-pattern>

Потому что это уже внутри контекста войны скотовода.

Теперь эта ссылка работает как положено: http://127.0.0.1:8080/stockwatcher/stockPrices?q=ABC

0 голосов
/ 15 декабря 2011

Убедитесь, что приложение было запущено по тому же пути, что и в eclipse

http://127.0.0.1:8080/stockwatcher

Tomcat по умолчанию использует имя войны / папки в качестве корневого пути, так что если у вас есть stockwatcher-1.0-SHAPSHOT.war будет опубликован как http://127.0.0.1:8080/stockwatcher-1.0-SHAPSHOT...

Также на страницу управления Tomcat http://localhost:8080/manager/html, чтобы узнать, по какому пути опубликовано ваше приложение

0 голосов
/ 12 декабря 2011

вы отобразили сервлет как

/ StockWatcher / stockPrices

но вы вызываете его как:

/ StockWatcher / StockPrice? Д = ABC

Это опечатка.

0 голосов
/ 11 декабря 2011

Вы можете попытаться скопировать всю папку, созданную во время компиляции, в папку веб-приложений Tomcat. Если это сработает, вы будете знать, заключается ли проблема в создании войны или в другом источнике. Я бы предположил, что это как-то связано с вашим web.xml. В вашем каталоге tomcat, если вы посмотрите в / webapps / yourproject / WEB-INF / как выглядит web.xml? У вас есть приложение в вашем приложении? они работают?

...