Развернуть приложение Java-EE, которое было в openshift, на Tomcat 7

Я новичок в Java EE и Tomcat.

Я работал над REST Java-приложением в OpenShift с JBoss EWS 2.0, и у меня не было проблем. Недавно у нас появился сервер, на котором я должен запустить свой веб-сервис.

Следуя инструкциям по развертыванию файла war в Tomcat 7, я зашел в корень своего приложения и использовал эту команду:

jar -cvf myapp.war *

Обратите внимание, что myapp мое имя приложения, например.

Я положил файл .war в /base/path/of/tomcat/webapps/ и пошел к диспетчеру приложений Tomcat GUI.

Я увидел, что Tomcat создал папку с моим именем .war и поместил в нее файлы, поэтому я запустил свое приложение, но когда я пошел в http://localhost:8080/myapp/ он вернул 404. Однако в OpenShift, когда я открыл его (открыл корневой путь), он отображал index.html, поскольку мой путь к веб-сервису недопустим и не работает.

пожалуйста, направьте меня и спасибо за ваше время, потраченное на мой вопрос.

3 ответа

Решение

Это просто.

Существует два способа развернуть файл войны на Tomcat с пользовательским путем

во-первых, нужно переименовать ваш военный файл в нужный URL-адрес (например, имя военного файла java-web-app-1.0.war и ваш путь myapp поэтому вы должны переименовать его в myapp.war)

и скопировать и положить его под {tomcat-path}/webapps/Затем Tomcat/TomEE делает свою работу. (создается пустой каталог с тем же именем вашего военного файла)

примерно через 1 минуту вы можете проверить путь (в этом примере необходимо localhost:8080/myapp и посмотри, как развернут твой военный файл)

Второй - использовать Tomcat GUI.

идти к Web Application Manager часть.

это такая страница:

в Deploy поле просто заполните Context поле (это будет пользовательский путь и в этом случае myapp) а затем выберите файл войны и нажмите кнопку развертывания. (заполнять не нужно XML Configuration file URL поле)

тогда это дает вам сообщение, подобное этому:

это означает, что ваш файл войны был развернут по пользовательскому пути.

AS Clément Duveau говорит, что приложение EJB нельзя развернуть в контейнере сервлетов (например, Tomcat). Приложение EJB необходимо развернуть на сервере приложений, таком как JBoss, Wildfly, GlassFish, Weblogic, Websphere, TomEE и т. Д.

Наиболее похожим сервером для Tomcat (совместимым с Java EE) будет TomEE.

Предложение: если вам нужно использовать Tomcat, вы можете изменить EJB для Spring Framework.

Я должен написать ответ, потому что я не могу комментировать.

Я предлагаю дать нам копию файла web.xml.

С другой стороны, вы должны знать, что Tomcat - это контейнер сервлетов, а JBoss - JEE-сервер с полным стеком. Если в вашем веб-приложении есть EJB, оно не будет работать.

Другие вопросы по тегам