내 webapp (또는 WAR 파일)의 이름을 ROOT로 바꿀 수 있지만 IMHO는 끔찍한 방법입니다. 이제 바람둥이 문서를 확인했는데
server.xml 파일에 직접 요소를 배치하지 않는 것이 좋습니다.
그래서 제안한 다른 방법으로 시도했습니다.
개별 컨텍스트 요소는 다음과 같이 명시 적으로 정의 될 수 있습니다. 응용 프로그램 파일 내의 /META-INF/context.xml에있는 개별 파일.
그래서 /META-INF/context.xml
다음 코드를 사용하여
<?xml version="1.0" encoding="UTF-8"?>
<Context antiJARLocking="true" path="/"/>
그러나 서버를 다시 시작할 때 배포 한 후에도 여전히 “/”에서 컨텍스트를로드하지 못했습니다. "/<WEB_APP_NAME>"
도움이되는 포인터.
답변
할 수있는 일은 다음과 같습니다.
호출 ROOT.xml
된 파일 추가<catalina_home>/conf/Catalina/localhost/
이 ROOT.xml은 해당 엔진 및 호스트 (Catalina 및 localhost)에 대한 Tomcat 설치의 루트 컨텍스트에 대한 기본 설정을 대체합니다.
ROOT.xml 파일에 다음을 입력하십시오.
<Context
docBase="<yourApp>"
path=""
reloadable="true"
/>
자, <yourApp>
앱 이름입니다 .. 🙂
이제 응용 프로그램이 기본 응용 프로그램으로 표시되며 http://localhost:8080
그러나 한 가지 부작용이 있습니다. 응용 프로그램이 두 번로드됩니다. 한 번만 localhost:8080
및에 한 번 localhost:8080/yourApp
. 이 문제를 해결하려면 응용 프로그램을 외부 <catalina_home>/webapps
에 놓고 ROOT.xml의 docBase 태그에서 상대 또는 절대 경로를 사용하십시오. 이 같은;
<Context
docBase="/opt/mywebapps/<yourApp>"
path=""
reloadable="true"
/>
그리고 모든 것이 정상입니다!
답변
다음 은 나를 위해 일한 유일한 솔루션을 따릅니다 . 이것을 conf / server.xml의 호스트 노드에 추가하십시오
<Context path="" docBase="yourAppContextName">
<!-- Default set of monitored resources -->
<WatchedResource>WEB-INF/web.xml</WatchedResource>
</Context>
Tomcat server.xml 파일로 이동하여 경로를 비워 둡니다.
답변
Tomcat 9.0에서는 다음에서 변경해야합니다. server.xml
<Context docBase="web" path="/web" reloadable="true" source="org.eclipse.jst.jee.server:web"/>
에
<Context docBase="web" path="" reloadable="true" source="org.eclipse.jst.jee.server:web"/>
답변
이 작은 코드는 가상 호스트를 사용하여 나를 위해 일했습니다.
<Host name="my.host.name" >
<Context path="" docBase="/path/to/myapp.war"/>
</Host>
답변
가장 빠르고 최상의 솔루션 일 수 있습니다. <TOMCAT_INSTALL_DIR>/conf/Catalina/localhost/ROOT.xml
<Context
docBase="/your_webapp_location_directory"
path=""
reloadable="true"
/>
그리고 귀하의 웹앱은 http://<host>:<port>/
답변
한 달 동안이 문제에 직면했습니다 .server.xml에 컨텍스트 태그를 넣는 것은 안전하지 않습니다. 다른 모든 호스트에 배포하는 컨텍스트 요소에 영향을 미칩니다. 큰 응용 프로그램의 경우 연결 오류가 발생하여 격리가 잘 이루어지지 않습니다. .com / domain1Folder !! 또한 데이터베이스 세션 연결이 두 번로드되었습니다! 다른 방법은 컨텍스트 태그가있는 ROOT.xml 파일을 전체 경로와 함께 넣는 것입니다.
<Context path="" docBase="/var/lib/tomcat7/webapps/ROOT" />
conf / catalina / webappsfoldername에서 warapp를 webappsfoldername 내에 ROOT.war로 배포하고 호스트와 같은 호스트를 지정하십시오.
<Host name="domianname" appBase="webapps2" unpackWARs="true" autoDeploy="true" xmlValidation="false" xmlNamespaceAware="false" >
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="localhost_log." suffix=".txt"
timestamp="true"/>
</Host>
이 접근법에서 동일한 유형의 앱에 대해서도 사용자 세션이 잘 격리되지 않았습니다! app1과 app1이 동일한 경우 app1 내부에있을 수 있습니다. 서버 측 세션으로 로그인 한 후 자동으로 app2에 로그인 할 수 있습니까?! 따라서 사용자 세션을 jsessionid가 아닌 클라이언트 측 캐시에 보관해야합니다! 로컬 호스트에서 엔진 이름을 변경하여 해결할 수 있습니다. 그러나 바람둥이를 가지고 노는 것은 다른 고양이를 가지고 노는 것보다 더 많은 시간이 필요하다고 말합시다!
답변
server.xml 또는 ROOT.xml과 같은 서버 구성을 업데이트하지 않는 것이 좋습니다.
컨텍스트 경로 설정을 포함하여 웹 응용 프로그램 META-INF 디렉토리에 context.xml 구성 파일을 넣을 수 있습니다. 이것은 기본 서버 설정을 무시합니까?
즉 :
<Context docBase="yourAppName" path="/yourAppPath" reloadable="true">