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. 사용하려는 서버에서 컨텍스트 클릭하여 "Clean…"을 선택합니다.

    enter image description here

  6. 이 확인 대화 상자에서 확인을 클릭하세요.

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

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

http://localhost:8080/app/

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

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

Vaadin 툴킷 프로그래머는 시각적 추가 기능을 사용하는 경우 위젯 세트를 다시 빌드해야 할 수도 있습니다.

다른 팁

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

만약 당신이 충격을 받았다면 당신은 또 다른 선택을 할 수 있습니다:서버 보기에서 Tomcat 서버를 선택하십시오.해당 서버를 두 번 클릭하거나 상황에 맞는 메뉴에서 열기를 선택하면 모듈 페이지가 있는 다중 페이지 편집기가 나타납니다.여기에서 모듈의 루트 컨텍스트(이 페이지에서는 Path라고 함)를 변경할 수 있습니다.

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

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

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

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

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

http://localhost:8080/Myapp 에게 http://localhost:8080/somepath/Myapp

하지만 내 로컬 컴퓨터에 있는 개별 서버 인스턴스가 아닌 구성을 저장할 수 있는 *.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 웹 모듈 편집 대화 상자에서 경로를 없음으로 설정하면 URL에 경로 구성 요소 없이 프로젝트에 액세스할 수 있습니다(예:뿌리)

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

일부 스크린샷:

Apache Tomcat은 server.xml 경로에 프로젝트 컨텍스트 경로를 유지합니다.Eclipse의 각 웹 프로젝트에는 변경할 수 있는 태그가 있습니다.
서버에 2~3개의 프로젝트가 배포되어 있다고 가정해 보겠습니다.각각 하나의 컨텍스트 경로가 에 저장됩니다.이 태그는 Eclipse에서 생성된 서버 내의 server.xml 파일에 있습니다.

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

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

이 경로는 웹 애플리케이션의 컨텍스트 경로를 나타냅니다.이 경로를 변경하면 웹앱 컨텍스트 경로가 변경됩니다.

나는 그 대답이 이미 받아들여졌다는 것을 알고 있습니다.그러나 Maven을 사용하는 사람이 동일한 결과를 얻고자 하는 경우를 대비하여 다음을 설정하십시오. 최종이름 메이븐에서 짓다 당신이 부여하고 싶은 이름으로 maven을 수행하십시오 -> 프로젝트 업데이트

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

프로젝트가 Maven인 경우 pom.xml에서 "finalName"을 변경하고 프로젝트를 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.comComponent"라는 파일을 찾으십시오.<wb-module 배포-이름="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>

이제 프로젝트 루트 폴더로 이동하여 해당 위치에서 CMD 프롬프트를 열십시오.이 명령을 입력하십시오.

mvn eclipse:eclipse -Dwtpversion=2.0

Eclipse를 다시 시작하거나 서버 보기에서 서버를 삭제하고 agian을 생성하여 영향을 확인해야 할 수도 있습니다.이 연습이 실제 생활에서는 의미가 있지만 효과가 있는지 궁금합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top