Развернуть приложение 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, оно не будет работать.