Как изменить корневой контекст динамического веб-проекта в Eclipse? - PullRequest
198 голосов
/ 13 марта 2010

Я разработал динамический веб-проект в Eclipse. Теперь я могу получить к нему доступ через свой браузер, используя следующий URL:

http://localhost:8080/MyDynamicWebApp

Теперь я хочу изменить URL доступа на

http://localhost:8080/app

Я изменил корневой контекст из проекта «Свойства | Настройки веб-проекта | Корневой контекст».

Но это не работает. Веб-приложение все еще имеет URL доступа, как и раньше. Я повторно развернул приложение на Tomcat, перезапустил Tomcat и сделал все, что должно быть сделано, но URL доступа такой же, как и раньше.

Я обнаружил, что к файлу WAR не приложен файл server.xml. Тогда как Tomcat определяет, что корневым контекстом моего веб-приложения является /MyDynamicWebApp и позволяет мне получить доступ к приложению через этот URL-адрес?

Ответы [ 12 ]

324 голосов
/ 01 декабря 2011

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

Некоторые из этих ответов дают обходные пути.На самом деле должно произойти то, что вы очищаете и повторно публикуете свой проект, чтобы «активировать» новый URI.Это можно сделать, щелкнув правой кнопкой мыши по вашему серверу (в представлении «Серверы») и выбрав «Очистить».Затем вы начинаете (или перезапускаете).Большинство других ответов здесь предполагают, что вы делаете вещи, которые в действительности достигают этого.

Файл, который изменяется, workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat, если только вы не имеете более одного сервера в своем рабочем пространстве, в этом случае онбудет publishN.dat по тому же пути.

Надеюсь, это кому-нибудь поможет.


Не уверен, что это правильный этикет или нет - я редактирую этот ответ, чтобы дать точные шаги дляEclipse Indigo.

  1. В свойствах вашего проекта выберите Настройки веб-проекта .

  2. Изменить Корневой контекст на app .

    screen shot of Eclipse project properties Web Project Settings

  3. Выберите Окно> Показать представление> Серверы .

  4. Остановите сервер, нажав либокрасный квадрат (всплывающая подсказка «Остановить сервер») или щелкните контекстную кнопку мыши на списке серверов, чтобы выбрать «Стоп».

  5. На сервере, который вы хотите использовать, щелкните контекстную кнопку, чтобывыберите "CLean… ".

    enter image description here

  6. Нажмите OK в этом диалоговом окне подтверждения.

    Screenshot of dialog asking to update server configuration to match the changed context root

Теперь вы можете запускать свое приложение с новым URL-адресом приложения, таким как:

http://localhost:8080/app/

Делая это вне Eclipse, на вашем производствесервер, еще проще -> переименовать файл войны.Экспортируйте приложение Vaadin в виде файла WAR ( Файл> Экспорт> Интернет> Файл WAR ).Переместите файл WAR в контейнер сервлетов вашего веб-сервера, например Tomcat.Переименуйте ваш файл WAR, в этом случае в app.war .Когда вы запускаете контейнер сервлетов, большинство из них, таких как Tomcat, автоматически развернут приложение, которое включает в себя развертывание файла war в папку.В этом случае мы должны увидеть папку с именем app .Тебе должно быть хорошо идти.Проверьте свой URL.Для домена, например * example.com ", это будет:

http://www.example.com/app/

Программистам Vaadin может потребоваться перестроить свой набор виджетов при использовании визуальных надстроек.

31 голосов
/ 13 марта 2010

После изменения корневого контекста в свойствах проекта вам необходимо удалить веб-приложение из Tomcat (используя «Добавить и удалить ...» в контекстном меню сервера), повторно развернуть, а затем повторно добавить приложение и повторно развернуть. У меня это сработало.

Если вы поражены, у вас есть другой выбор: выберите сервер Tomcat в представлении Серверы. Двойной щелчок на этом сервере (или выбор «Открыть» в контекстном меню) приводит к появлению многостраничного редактора, на котором есть страница «Модули». Здесь вы можете изменить корневой контекст вашего модуля (на этой странице он называется Path).

24 голосов
/ 18 мая 2010

Если вы используете Tomcat из Eclipse, он не использует конфигурацию из вашей фактической установки Tomcat. Он использует конфигурацию Tomcat, созданную и сохраненную в проекте «Серверы». Если вы просматриваете свое рабочее пространство Eclipse, вы должны увидеть проект под названием «Серверы». Разверните этот проект «Серверы», и вы натолкнетесь на server.xml. Откройте этот файл и прокрутите его до конца, и вы должны увидеть что-то вроде этого: -

<Context docBase="abc" path="/abc" reloadable="true" source="org.eclipse.jst.jee.server:abc"/>

Здесь вы можете просто изменить путь контекста проекта на что-то другое.

Надеюсь, это поможет.

17 голосов
/ 30 августа 2012

Я опробовал решение, предложенное Рассом Бейтманом. Здесь в посте

http://localhost:8080/Myapp до http://localhost:8080/somepath/Myapp

Но у меня не сработало, так как мне нужен был * .war-файл, который может содержать конфигурацию, а не отдельный экземпляр сервера на моей локальной машине.

1010 * Reference *

Для этого мне нужен jboss-web.xml, размещенный в WEB-INF

<?xml version="1.0" encoding="UTF-8"?>
 <!--
Copyright (c) 2008 Object Computing, Inc.
All rights reserved.
-->
<!DOCTYPE jboss-web PUBLIC "-//JBoss//DTD Web Application 4.2//EN"
"http://www.jboss.org/j2ee/dtd/jboss-web_4_2.dtd">

  <jboss-web>
  <context-root>somepath/Myapp</context-root>
  </jboss-web>
7 голосов
/ 26 августа 2015

Установка нулевого пути в диалоговом окне редактирования веб-модулей Eclipse позволила мне получить доступ к проекту без какого-либо компонента пути в URL (т. Е. ROOT)

Вы можете открыть диалоговое окно редактирования веб-модулей, нажав клавишу F3, если вы выбрали Tomcat в представлении «Серверы», или дважды щелкнув по нему.

Некоторые скриншоты:

6 голосов
/ 15 октября 2014

Я знаю, что ответ уже принят. Но на тот случай, если любой, кто использует Maven, хочет добиться того же, просто установите finalName в maven build на любое имя, которое вы хотите дать, и выполните maven -> update project

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>
6 голосов
/ 08 ноября 2011

Apache tomcat хранит путь контекста проекта в пути server.xml. Для каждого веб-проекта в Eclipse есть тег, который вы можете изменить.
Предположим, на сервере развернуто два или три проекта. Для каждого контекста путь хранится в. Этот тег находится в файле server.xml на сервере, созданном в eclipse.

У меня есть один проект для корневого пути контекста на сервере:

<Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:Test1"/>

Этот путь представляет собой контекстный путь вашего веб-приложения. При изменении этого пути путь к контексту вашего веб-приложения изменится.

4 голосов
/ 19 апреля 2016

Если проект maven, измените "finalName" в pom.xml и обновите проект как Maven. Это сработало для меня.

2 голосов
/ 02 ноября 2018

Я просто хотел добавить, что если вы вообще не хотите, чтобы имя вашего приложения находилось в корневом контексте, вы просто помещаете "/" (без кавычек, только косая черта) в Eclipse -> Настройки веб-проекта -> Контекстная корневая запись

Это развернет веб-приложение на http://localhost:8080/

Конечно, это вызовет проблемы с другими веб-приложениями, которые вы пытаетесь запустить на сервере, так что не забывайте об этом.

Взял меня навсегда, чтобы собрать это вместе ... так что, хотя этому посту 8 лет, надеюсь, это все равно кому-нибудь поможет!

2 голосов
/ 26 ноября 2013

В Glassfish вы также должны изменить файл WEB-INF / glassfish-web.xml

<glassfish-web-app>
    <context-root>/myapp</context-root>
</glassfish-web-app>

Поэтому, когда вы нажмете «Запуск от имени> Запуск на сервере» , оно откроется правильно.

...