развернуть приложение java-ee, которое было в openshift, на tomcat 7

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

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

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

jar -cvf myapp.war *

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

Я поместил файл .war в /base/path/of/tomcat/webapps/ и перешел в Tomcat GUI App Manager.

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

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


person Seyed Ali Roshan    schedule 07.08.2016    source источник
comment
Как обычно: какие-то ошибки в логах сервера? Есть ли что-нибудь интересное в логах сервера?   -  person Gimby    schedule 08.08.2016
comment
нет, все швы работают хорошо. например, если я помещу text.html в папку myapp и открою localhost:8080/myapp/text.html он открывается, но части моего приложения находятся в отдельной папке, и я не знаю, как получить к нему доступ   -  person Seyed Ali Roshan    schedule 08.08.2016
comment
Ну... тогда я могу только догадываться, что это что-то столь же глупое, как отсутствие какого-либо index.html в фактической развернутой войне, имя веб-приложения каким-то образом переопределяется, чтобы быть чем-то другим, кроме myapp, или что-то подобное простое, что можно не заметить. В журнале должно быть указано, какое приложение развернуто и под каким именем контекста, это «myapp»?   -  person Gimby    schedule 08.08.2016


Ответы (3)


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

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

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

person Clément Duveau    schedule 16.08.2016

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

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

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

person fiso    schedule 16.08.2016
comment
он работает на локальном хосте с tomcat 7.0 и 8.0, но netbeans развертывает его. так что это означает, что его можно развернуть на обычном коте, но я не знаю, как это сделать - person Seyed Ali Roshan; 18.08.2016
comment
@SeyedAliRoshan Вы имеете в виду, что ваше приложение работает в локальном Tomcat, когда оно развернуто Netbeans? Итак, ваша проблема в том, что вы не знаете, как выполнить ручное развертывание? - person fiso; 18.08.2016

это просто.

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

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

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

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

второй - использовать графический интерфейс Tomcat.

перейти к Web Application Manager части.

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

введите здесь описание изображения

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

то он выдает вам такое сообщение:

введите здесь описание изображения

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

person Seyed Ali Roshan    schedule 10.07.2017