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

StackOverflow https://stackoverflow.com/questions/2437465

Вопрос

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

http://localhost:8080/MyDynamicWebApp

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

http://localhost:8080/app

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

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

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

Это было полезно?

Решение

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

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

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

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


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

  1. В вашем проекте Свойства, выбрать Настройки веб-проекта.

  2. Изменение Контекстный корень Для приложение.

    screen shot of Eclipse project properties Web Project Settings

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

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

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

    enter image description here

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

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

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

http://localhost:8080/app/

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

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

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

Другие советы

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

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

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

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

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

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

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

http://localhost:8080/Myapp Для http://localhost:8080/somepath/Myapp

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

Ссылка

Для этого мне нужно 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>

Установка значения path в nothing в диалоговом окне редактирования веб-модулей Eclipse позволила мне получить доступ к проекту без какого-либо компонента path в URL (т.е.КОРЕНЬ)

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

Несколько скриншотов:

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

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

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

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

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

<build>
    <finalName><any-name></finalName>
    <plugins><provide-plugins-needed></plugins>
<build>

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

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

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

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

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

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

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

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

В проекте Java откройте папку .settings.там найдите файл с именем "org.eclipse.wst.common.component" .Изменить тег <wb-module deploy-name="NEW_NAME"> .

Также вы можете захотеть изменить корневой каталог контекста в свойствах проекта

Если вы используете eclipse для развертывания вашего приложения.Мы можем использовать этот плагин maven

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.10</version>
    <configuration>
        <wtpversion>2.0</wtpversion>
        <wtpContextName>newContextroot</wtpContextName>
    </configuration>
</plugin>

теперь перейдите в корневую папку вашего проекта и откройте командную строку в этом месте введите эту команду :

mvn eclipse:eclipse -Dwtpversion=2.0

Возможно, вам потребуется перезапустить eclipse или в режиме просмотра сервера удалить server и создать agian, чтобы увидеть влияние.Я удивляюсь, что это упражнение имеет смысл в реальной жизни, но работает.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top