Eclipse에서 동적 웹 프로젝트의 컨텍스트 루트를 변경하는 방법은 무엇입니까?


205

Eclipse에서 동적 웹 프로젝트를 개발했습니다. 다음 URL을 사용하여 브라우저를 통해 앱에 액세스 할 수 있습니다.

http://localhost:8080/MyDynamicWebApp

액세스 URL을 다음과 같이 변경하고 싶습니다.

http://localhost:8080/app

이를 위해 프로젝트 "속성 | 웹 프로젝트 설정 | 컨텍스트 루트"에서 컨텍스트 루트를 변경했습니다. 그러나 웹앱에는 여전히 동일한 액세스 URL이 있습니다. Tomcat에서 응용 프로그램을 다시 배포하고 Tomcat을 다시 시작했지만 액세스 URL은 이전과 동일합니다.

server.xml파일에 첨부 된 파일 이 없음을 발견했습니다 WAR. server.xml파일이 첨부되지 않은 경우 Tomcat은 내 웹 앱의 컨텍스트 루트가 무엇인지 판별 /MyDynamicWebApp하고이 컨텍스트 루트 URL을 통해 애플리케이션에 액세스 할 수있게 하는 방법은 무엇입니까?

답변:


331

나는 당신이 지금까지 나아 갔다고 확신하지만 어쨌든 나는 대답 할 것이라고 생각했다.

이러한 답변 중 일부는 해결 방법을 제공합니다. 실제로 발생해야하는 것은 새 URI를 "활성화"하기 위해 프로젝트를 정리하고 다시 공개하는 것입니다. 서버보기에서 서버를 마우스 오른쪽 단추로 클릭하고 정리를 선택하면됩니다. 그런 다음 시작하거나 다시 시작하십시오. 여기에있는 다른 답변의 대부분은 실제로이 작업을 수행하는 작업을 제안합니다.

변경중인 파일은 workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat작업 공간에 둘 이상의 서버 가 없는 경우를 제외하고는 publishN.dat동일한 경로에있는 파일입니다.

이것이 누군가를 돕기를 바랍니다.


이것이 적절한 에티켓인지 아닌지 확실하지 않습니다.이 답변을 편집하여 Eclipse Indigo에 정확한 단계를 제공하고 있습니다.

  1. 프로젝트의 속성 에서 웹 프로젝트 설정을 선택하십시오 .

  2. 컨텍스트 루트app으로 변경하십시오 .

    Eclipse 프로젝트 특성 웹 프로젝트 설정의 스크린 샷

  3. 창>보기 표시> 서버를 선택하십시오 .

  4. 빨간색 사각형 상자 ( "서버 중지"도구 설명)를 클릭하거나 서버 목록에서 컨텍스트를 클릭하여 "중지"를 선택하여 서버를 중지하십시오.

  5. 사용하려는 서버에서 컨텍스트 클릭하여 "청소…"를 선택하십시오.

    여기에 이미지 설명을 입력하십시오

  6. 이 확인 대화 상자에서 확인을 클릭하십시오.

    변경된 컨텍스트 루트와 일치하도록 서버 구성을 업데이트하도록 요청하는 대화 상자의 스크린 샷

이제 다음과 같은 새로운 "앱"URL을 사용하여 앱을 실행할 수 있습니다.

http://localhost:8080/app/

프로덕션 서버에서 Eclipse 외부에서이를 수행하는 것이 훨씬 쉽습니다-> war 파일 이름 바꾸기. Vaadin 앱을 WAR 파일로 내보내십시오 ( 파일> 내보내기> 웹> WAR 파일 ). WAR 파일을 Tomcat과 같은 웹 서버의 서블릿 컨테이너로 이동하십시오. 이 경우 WAR 파일의 이름을 app.war바꾸십시오 . 서블릿 컨테이너를 시작하면 Tomcat과 같은 대부분은 war 파일을 폴더로 확장하는 것을 포함하여 앱을 자동 배포합니다. 이 경우 app 이라는 폴더가 나타납니다 . 잘 가야합니다. URL을 테스트하십시오. * example.com "과 같은 도메인의 경우 다음과 같습니다.

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

Vaadin 툴킷 프로그래머는 시각적 애드온을 사용하는 경우 위젯 세트를 다시 빌드해야합니다.


좋은 답변 !!! 당신은 내 인생의 다른 답변을 구할 수 있습니다. 여기에 실제로 달성 한 일을 제안합니다.
AndreaNobili

이 답변의 천재는 다음과 같습니다. 나는이 페이지로가는 길을 걸었고 태그를 읽지 못했습니다 (Visual Studio를 사용하여 ASP.NET 웹 사이트를 만들고 있습니다). 그러나 솔루션은 어쨌든 효과가있었습니다!
Curt

"웹 프로젝트 설정"과 같은 옵션이 없습니다
IntoTheDeep

workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat이진 파일 이라고 말하면 , 왜 당신이 그것을 언급했는지 이해할 수 없습니다. 그것은 그것이 문제에 대한 해결책이라는 인상을줍니다
aliopi

그러나 우리가 Eclipse 또는 IDE를 사용하지 않으면 어떻게 될까요? 프로그래밍 방식으로 서블릿 컨텍스트의 루트 경로를 구성하고 싶습니다. 어떻게해야합니까? web.xml에서 아마? ..
Giorgi Tsiklauri

32

프로젝트 속성에서 컨텍스트 루트를 변경 한 후 Tomcat에서 웹 애플리케이션을 제거하고 (서버의 컨텍스트 메뉴에서 추가 및 제거 ... 사용) 애플리케이션을 재배치 한 후 다시 추가하고 재배치해야합니다. 그것은 나를 위해 일했다.

강타를 당했다면 다른 선택을 할 수 있습니다 : 서버보기에서 Tomcat 서버를 선택하십시오. 해당 서버를 두 번 클릭하거나 상황에 맞는 메뉴에서 열기를 선택하면 모듈 페이지가있는 다중 페이지 편집기가 나타납니다. 여기에서 모듈의 루트 컨텍스트 (이 페이지의 경로)를 변경할 수 있습니다.


감사! 이것은 나를 위해 속임수를했다. 그러나 프로젝트 속성에서 컨텍스트 루트를 변경하지 않고도 작동합니다. 여기에 뭔가 빠졌습니까?
Chris

이전 Eclipse 빌드에서도 작동했지만 현재 빌드 (Luna)에서는 Clean 옵션 만 작동합니다.
Griknok

namasety, dhanywaada :) 처음 컨텍스트를 변경했을 때 서버를 다시 시작하고 정리 한 후에도 작동하지 않았습니다. 그것은 포스트에서만 일했고, 나는 프로젝트를 제거하고 읽었습니다.
Yogesh Sanchihar

24

Eclipse에서 Tomcat을 실행중인 경우 실제 Tomcat 설치의 구성을 사용하지 않습니다. "서버"프로젝트에서 생성하고 저장 한 Tomcat 구성을 사용합니다. Eclipse 작업 공간을 보면 "서버"라는 프로젝트가 표시됩니다. "서버"프로젝트를 확장하면 server.xml을 보게됩니다. 이 파일을 열고 맨 아래로 스크롤하면 다음과 같은 내용이 표시됩니다.

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

여기서 프로젝트 컨텍스트 경로를 다른 것으로 변경할 수 있습니다.

도움이 되었기를 바랍니다.


세 값을 모두 변경 하려는지 확실하지 않습니다. Csaba_H의 솔루션은 저에게 효과적이며 "path"속성 만 변경합니다.
Chris

이것은 나를 위해 작동하지 않았다-서버를 다시 시작할 때 해당 디렉토리의 파일을 덮어 씁니다. Tomcat 서버의 Csaba_H 버전 2, 모듈 탭은 "올바른"접근 방식으로 보입니다.
idarwin

17

Russ Bateman이 제안한 솔루션을 여기에서 사용해 보았습니다.

http://localhost:8080/Myapphttp://localhost:8080/somepath/Myapp

그러나 Didnt는 로컬 컴퓨터에 개별 서버 인스턴스가 아닌 구성을 보유 할 수있는 * .war 파일이 필요했기 때문에 나를 위해 일했습니다.

참고

그렇게하려면 WEB-INF에 jboss-web.xml이 있어야합니다.

<?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 + m2e + m2e-wtp + 서버보기에서 JBoss에 배포 ROOT로 기본 웹 프로젝트를 배포해야했고 Eclipse 설정이 트릭을 수행하지 않았습니다. 위의 Tosha 파일을 복사하고 "ROOT"sans 인용 부호를 컨텍스트 루트 값으로 배치합니다. 완료했다. 감사합니다, @Tosha!
Steven Francolla

이것은 작동하지만 왜 프로젝트 속성의 설정을 무시하는지 궁금합니다.
Vedran

4
JBoss의 제이보스 8.1.0 최종와 작품
알렉산더

MyEclipse 8.6에서 Eclipse로 마이그레이션했으며 '/'루트 컨텍스트로 배치 할 수 없습니다. jboss-web.xml을 성공적으로 추가했습니다. 서버 : Jboss AS 5.1 Eclipse Luna.
사이

9

Eclipse 웹 모듈 편집 대화 상자에서 경로를 아무것도 설정하지 않으면 URL에 경로 구성 요소 (예 : ROOT)없이 프로젝트에 액세스 할 수있었습니다.

"서버"보기에서 Tomcat을 선택한 경우 F3을 누르거나 두 번 클릭하여 웹 모듈 편집 대화 상자에 액세스 할 수 있습니다.

일부 스크린 샷 :


죄송하지만 이에 대한 자세한 내용을 알려 주시겠습니까?
smonff

오 감사합니다! GNU / Linux의 Eclipse Luna에서는 a /가 필요합니다.
smonff

1
Win7에서 Eclipse Mars (4.5)를 사용했습니다.
Ray Hulha

6

Apache Tomcat은 프로젝트 컨텍스트 경로를 server.xml 경로에 유지합니다. Eclipse의 각 웹 프로젝트마다 태그를 변경할 수 있습니다.
서버에 두세 개의 프로젝트가 배치되어 있다고 가정하십시오. 각 하나의 컨텍스트 경로는에 저장됩니다. 이 태그는 일식에서 작성된 서버의 server.xml 파일에 있습니다.

서버의 컨텍스트 루트 경로에 대한 하나의 프로젝트가 있습니다.

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

이 경로는 웹 응용 프로그램의 컨텍스트 경로를 나타냅니다. 이 경로를 변경하면 웹앱 컨텍스트 경로가 변경됩니다.


6

답변이 이미 수락되었음을 알고 있습니다. 그러나 Maven을 사용하는 사람이 동일한 것을 달성하고자하는 경우 maven 빌드finalName 을 원하는 이름으로 설정하고 maven- > 프로젝트 업데이트를 수행하십시오.

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


2

Glassfish에서는 WEB-INF / glassfish-web.xml 파일도 변경해야합니다.

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

따라서 "다음 계정으로 실행> 서버에서 실행" 을 클릭하면 올바르게 열립니다.


그렇습니다. 좋은 공유.
Dinath

2

루트 컨텍스트에서 응용 프로그램 이름을 전혀 원하지 않으면 Eclipse에서 "/"(따옴표없이 슬래시)를 추가하고 싶습니다.> 웹 프로젝트 설정-> 컨텍스트 루트 항목

그러면 http : // localhost : 8080 /에 webapp을 배포합니다 .

물론 이것은 서버에서 실행하려고하는 다른 웹 응용 프로그램에 문제를 일으킬 수 있으므로 그에 맞서십시오.

저를 영원히 조각했습니다 ...이 게시물이 8 세 였지만 여전히 이것이 누군가를 도울 것입니다!


0

Java 프로젝트에서 .settings 폴더를여십시오. "org.eclipse.wst.common.component"파일을 찾으십시오. <wb-module deploy-name = "NEW_NAME"> 태그를 변경하십시오.

또한 프로젝트 속성에서 컨텍스트 루트를 변경하고 싶을 수도 있습니다.


모두 내 프로젝트에서 좋아 보이고 일식 내에서 잘 작동합니다. 그것은 maven을 사용하여 그것을 전쟁 파일로 변환 할 때 그것이 루트 컨텍스트이고
느슨한

0

이클립스를 사용하여 응용 프로그램을 배포하는 경우. 이 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 -Dwtpversion = 2.0

eclipse를 다시 시작하거나 서버보기에서 서버 삭제 및 효과를 보려면 agian를 작성해야 할 수도 있습니다. 이 운동이 실생활에서는 의미가 있지만 효과가 있습니다.


0

maven java ee 7/8 엔터프라이즈 애플리케이션을 사용하는 경우 EAR 프로젝트의 pom.xml을 편집해야합니다.

<build>
    <plugins>
        ...
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-ear-plugin</artifactId>
            <version>2.8</version>
            <configuration>
                <version>6</version>
                <defaultLibBundleDir>lib</defaultLibBundleDir>
                <modules>
                    <webModule>
                        <groupId>com.sample</groupId>
                        <artifactId>ProjectName-web</artifactId>
                        <contextRoot>/myproject</contextRoot>
                    </webModule>
                </modules>
            </configuration>
        </plugin>
        ...
    </plugins>
</build>
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.