programing

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

yellowcard 2023. 5. 5. 08:47
반응형

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

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

http://localhost:8080/MyDynamicWebApp

액세스 URL을 다음으로 변경합니다.

http://localhost:8080/app

이를 위해 "Properties | Web Project Settings | Context Root" 프로젝트에서 컨텍스트 루트를 변경했습니다.그러나 웹 앱의 액세스 URL은 여전히 동일합니다. Tomcat에 앱을 다시 배포하고 Tomcat을 다시 시작했지만 액세스 URL은 이전과 동일합니다.

나는 그것이 없다는 것을 발견했습니다.server.xmlWAR 일파 없이. 파일 없이.server.xml인데, 내웹가 첨된파일, Tomcat은떻내게루라고 판단하고 있습니까?/MyDynamicWebApp 이 루트URL을 수 허용합니다?

이러한 답변 중 일부는 해결 방법을 제공합니다.실제로 발생해야 하는 작업은 새 URI를 "활성화"하기 위해 프로젝트를 정리하고 다시 게시하는 것입니다.이렇게 하려면 서버 보기에서 서버를 마우스 오른쪽 단추로 누르고 [정리]를 선택합니다.그런 다음 시작(또는 다시 시작)합니다.여기에 있는 대부분의 다른 대답들은 여러분이 실제로 이것을 성취할 수 있는 것들을 제안합니다.

은 변되는파입니다.workspace/.metadata/.plugins/org.eclipse.wst.server.core/publish/publish.dat가 두 개 제외하고는 가 "서버" 또는 "서버"가 .publishN.dat같은 길에


이것이 적절한 에티켓인지 아닌지 확신할 수 없습니다. 저는 이클립스 인디고에 대한 정확한 단계를 제공하기 위해 이 답변을 편집하고 있습니다.

  1. 프로젝트의 등록 정보에서 웹 프로젝트 설정을 선택합니다.

  2. 컨텍스트 루트를 으로 변경합니다.

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

  3. Window > Show View > Servers선택합니다.

  4. 빨간색 사각 상자("서버 중지" 도구 설명)를 누르거나 서버 목록에서 상황에 따라 눌러 "중지"를 선택하여 서버를 중지합니다.

  5. 사용할 서버에서 상황에 맞는 버튼을 눌러 "정리..."를 선택합니다.

    여기에 이미지 설명 입력

  6. 이 확인 대화 상자에서 확인을 클릭합니다.

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

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

http://localhost:8080/app/

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

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

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

프로젝트 속성에서 컨텍스트 루트를 변경한 후 Tomcat에서 웹 응용 프로그램을 제거해야 합니다(추가 및 제거... 사용).서버의 상황에 맞는 메뉴에서), 다시 배포한 다음 응용 프로그램을 다시 추가하고 다시 배포합니다.그것은 나에게 효과가 있었다.

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

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

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

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

이게 도움이 되길 바랍니다.

저는 러스 베이트먼이 제안한 해결책을 시도했습니다. 여기 게시물에 있습니다.

http://localhost:8080/Myapphttp://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(예: ROOT)에 경로 구성 요소 없이 프로젝트에 액세스할 수 있었습니다.

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

일부 스크린샷:

Apache Tomcat은 프로젝트 컨텍스트 경로를 server.xml 경로에 유지합니다.Eclipse의 각 웹 프로젝트에 대해 변경할 수 있는 태그가 있습니다.
서버에 두 개 또는 세 개의 프로젝트가 배포되어 있다고 가정합니다.에 됩니다.이 태그는 이클립스에 생성된 서버 내 server.xml 파일에 있습니다.

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

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

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

이미 답변이 받아들여진 것으로 알고 있습니다.하지만, 메이븐을 사용하는 사람이 같은 일을 성취하기를 원하는 경우, 메이븐 빌드의 최종 이름을 원하는 이름으로 설정하고 메이븐 프로젝트를 수행하면 됩니다. -> 업데이트 프로젝트

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

프로젝트가 메이븐이면 pom.xml의 "finalName"을 변경하고 프로젝트를 메이븐으로 업데이트합니다.이것은 저에게 효과가 있었습니다.

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

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

따라서 "서버에서 실행"을 클릭하면 올바르게 열립니다.

루트 컨텍스트에서 응용 프로그램 이름을 사용하지 않으려면 Eclipse --> Web Project Settings --> Context Root 항목에 "/"(따옴표 없이 슬래시만 사용)를 입력하십시오.

그러면 웹 앱이 http://localhost:8080/에만 배포됩니다.

물론 이렇게 하면 서버에서 실행하려는 다른 웹 앱에 문제가 발생할 수 있으므로 이를 해결하십시오.

그걸 조립하는 데는 오랜 시간이 걸렸습니다.그래서 비록 이 게시물이 8년이 되었지만, 이것이 여전히 누군가를 도울 수 있기를 바랍니다!

java 프로젝트에서 .settings 폴더를 엽니다.이름이 "syslog.dll"인 파일을 찾습니다.wst.common.component" . 태그를 변경합니다. <syslog-syslog deploy-name="NEW_NAME"> .

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

이클립스를 사용하여 애플리케이션을 배포하는 경우.이 메이븐 플러그인을 사용할 수 있습니다.

<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:dll -Dwtp version=2.0

Eclipse를 다시 시작하거나 서버 보기에서 서버를 삭제하고 다시 작성하여 영향을 확인해야 할 수 있습니다.나는 이 운동이 현실에서는 말이 되는지는 모르겠지만 효과가 있는지 궁금합니다.

메이븐 자바 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>

대체 자원이 좀 있어서...그러나 프로그래밍 방식은 서버에서 server.xml 파일을 변경하는 것입니다...

이렇게 실제 프로젝트가 구성됩니다. 컨텍스트에서 경로를 변경합니다.

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

언급URL : https://stackoverflow.com/questions/2437465/how-to-change-context-root-of-a-dynamic-web-project-in-eclipse

반응형