Я разработал динамический веб-проект в 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.
В своем проекте "Свойства" выберите "Настройки веб-проекта".
Измените "Корень контекста" на "приложение".
Выберите "Окно"> "Показать вид"> "Серверы".
Остановите сервер, нажав на квадрат красного квадрата (всплывающая подсказка "Остановить сервер") или щелкните контекстно-клик по списку серверов, чтобы выбрать "Остановить".
На сервере, который вы хотите использовать, щелкните контекстно-клик, чтобы выбрать "Очистить...".
Нажмите OK в этом диалоговом окне подтверждения.
Теперь вы можете запустить приложение с новым URL-адресом приложения, например:
http://localhost:8080/app/
Выполнение этого вне Eclipse на вашем рабочем сервере еще проще → Переименуйте файл войны. Экспортируйте ваше приложение Vaadin в качестве файла WAR (Файл> Экспорт> Веб> WAR файл). Переместите файл WAR в контейнер сервлета веб-сервера, такой как Tomcat. Переименуйте свой WAR файл, в данном случае в "app.war". Когда вы запускаете контейнер сервлета, большинство таких, как Tomcat, будут автоматически развертывать приложение, которое включает в себя расширение военного файла в папку. В этом случае мы должны увидеть папку с именем "приложение". Тебе должно быть хорошо. Проверьте свой URL. Для домена, такого как example.com, это будет:
Программистам инструментария Vaadin, возможно, придется перестроить их набор виджета, если использовать визуальные дополнения.
После изменения корня контекста в свойствах проекта вы должны удалить свое веб-приложение из Tomcat (с помощью Add and Remove... в контекстном меню сервера), повторно развернуть, а затем повторно добавить свое приложение и повторно развернуть. Это сработало для меня.
Если вы поражены, у вас есть другой выбор: выберите сервер Tomcat в представлении "Серверы". Двойной щелчок на этом сервере (или выбор "Открыть" в контекстном меню) содержит многостраничный редактор, в котором есть страница "Модули". Здесь вы можете изменить корневой контекст своего модуля (это называется "Путь" на этой странице).
Если вы используете 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
Но Didnt работал у меня, поскольку мне нужен файл *.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>
Настройка пути к нишу в диалоговом окне редактирования веб-модулей Eclipse позволила мне получить доступ к проекту без какого-либо компонента пути в URL-адресе (например, ROOT)
Вы можете попасть в диалоговое окно редактирования веб-модулей, нажав F3, если вы выберите Tomcat в представлении "Серверы" или дважды щелкнув по нему.
Некоторые скриншоты:
Я знаю, что ответ уже принят. Но, на всякий случай, если кто-либо, используя Maven, хочет достичь того же, просто установите finalName в maven build для любого имени, которое вы хотите дать, и выполните maven → обновить проект
<build>
<finalName><any-name></finalName>
<plugins><provide-plugins-needed></plugins>
<build>
Apache tomcat поддерживает путь контекста проекта в пути server.xml.
Для каждого веб-проекта на Eclipse есть метка оттуда, вы можете изменить его.
Предположим, на сервере есть два или три проекта.
Для каждого одного контекстного пути хранится.
Этот тег находится в файле server.xml внутри сервера, созданного на eclipse.
У меня есть один проект для корневого пути контекста на сервере:
<Context docBase="Test" path="/test" reloadable="true" source="org.eclipse.jst.jee.server:Test1"/>
Этот путь представляет собой путь контекста вашего веб-приложения. Изменив этот путь, ваш контекст контекста веб-приложения изменится.
Если проект является maven, измените "finalName" в pom.xml и обновите проект как Maven.This работал у меня.
В Glassfish вы также должны изменить файл WEB-INF/glassfish-web.xml
<glassfish-web-app>
<context-root>/myapp</context-root>
</glassfish-web-app>
Итак, когда вы нажмете "Запуск от имени > Запуск на сервере" , он откроется правильно.
Если вы используете 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>
теперь перейдите в корневую папку проекта и откройте приглашение cmd в этом месте введите следующую команду:
mvn eclipse: eclipse -Dwtpversion = 2.0
Вам может потребоваться перезапустить eclipse или сервер удаления сервера на сервере и создать агиан, чтобы увидеть аффект. Мне интересно, что это упражнение имеет смысл в реальной жизни, но работает.
В проекте java откройте папку .settings. найдите файл с именем "org.eclipse.wst.common.component". Изменить тег < wb-module deploy- name= "NEW_NAME" > .
Также вы можете изменить корень контекста в свойствах проекта