2009-09-26 4 views
0

처음에는 "admin"이라는 webapp가 실행 중이 었으며 tomcat 6의 $ CATALINA_HOME/webapps/디렉토리에 배포되었습니다. 이제이 webapp를 실행하기 위해 가상 호스트를 설정하려고했습니다.Tomcat 가상 호스트 설정이 Struts 액션에 대해 작동하지 않습니다.

1 단계 : 나는 $ CATALINA_HOME/conf의/server.xml을

<Host name="mysubdomain.domain.com" appBase="keshav"> 

</Host> 

2 단계에서 다음과 같은 추가 : $ CATALINA_HOME /으로 ROOT 컨텍스트를 만든 : 나는 폴더 $에 CATALINA_HOME/keshav

3 단계를 만들어 keshav/ROOT

4 단계 : 나는이에 액세스 할 때 $ CATALINA_HOME/이제 keshav

에 ($ CATALINA_HOME/webapps에/내부이었다) 내 "관리자"웹 애플리케이션을 이전, 로그인 페이지를 가져 오는 것이 좋습니다. 내가 http://mysubdomain.domain.com/admin/Login.do 접근 시도하거나 다른 스트럿 조치는 나에게 404 오류 -

제공하지만 - 나는 메시지 "정보를 얻을 catalina.out 파일에서

"HTTP 상태 404 서블릿 액션을 사용할 수 없습니다 ": 서블릿 현재 조치를 사용할 수 없습니다. "

누구든지이 구성에서 잘못된 점을 이해할 수 있습니까?

업데이트 : 커넥터 포트를 8080에서 80으로 변경했습니다. 80 포트를 열려면 root 권한이 필요하므로 sudo (사용중인 사용자는 sudoers 목록에 있음)를 사용하여 tomcat을 시작합니다.

sudo로 tomcat을 실행할 때마다 struts 작업에 대한 404 오류가 발생합니다. 커넥터 포트를 80에서 8080으로 변경하고 sudo를 사용하지 않고 시작하면 가상 호스트가 정상적으로 작동하고 있습니다.

루트로 시작하여 tomcat을 시작하면 잘 작동합니다. sudo를 사용하면이 문제가 발생하는 것 같습니다.

답변

0

이것은 ActionServlet의 일반적인 특징입니다. UnavailableException에 모든 예외를 매핑하므로 서블릿이 종료 되더라도 항상 "unavaiable"오류가 발생합니다. 정확한 원인을 보여주기 위해 로그에 다른 정보가 있어야합니다.

sudo에서 서버를 실행하면 환경이 변경됩니다. 어쩌면 스트럿츠 설정은 환경 변수 나 기본 작업 디렉토리에 의존 할까?

"sudo -s catalina.sh"을 시도해보십시오. 도움이 될 수 있습니다.

0
  1. 가상 호스트의 컨텍스트를 정의 했습니까? Tomcat 가상 호스팅 가이드의 Configuring Your Context 섹션을 살펴보십시오.
  2. ROOT 컨텍스트가 필요하지 않습니다 (실제로 사용하지 않는 한).
  3. '동작'서블릿이 web.xml의 '* .do'패턴에 매핑 되었습니까? 나는 당신이 그것이 잘 달리고 있다고 말했으므로 그렇게 추측한다.
+0

답장을 보내 주셔서 감사합니다. 1) 아니요, 별도의 context.xml이 "admin"webapp에 필요하지 않다고 생각합니다. $ CATALINA_HOME/conf의 기본값으로 충분할 것입니다. 2) 예 ROOT는 필요하지 않지만 admin에 대한 리디렉션을 위해 사용하고 있습니다. "webapp 3) 네. 최신 업데이트를 확인하십시오. - Keshav – Keshav

+0

JSP가 포트 80에서도 sudo로 작동하지만 동작이 아닙니까?작동중인 JSP가 실제로 "가상"호스트에서 왔으며 이전 실행 (예 : 캐시 된 컴파일 된 캐시 또는 비 가상 응용 프로그램의 캐시 된 캐시)의 아티펙트가 아닌지 확인 하시겠습니까? sudo를 실행하면 환경을 변경할 수 있고, 보통 'sudo -V'를 실행하여 세부 사항을 볼 수있다. 아마도 클래스 패스에 문제가있는 것 같습니다. 포트가 8080으로 유지되는 동안 sudo를 통해 Tomcat을 시작하십시오. 이것은 포트 문제와 관련하여 sudo를 좁히는 데 도움이됩니다. Tomcat을 깨끗하게 시작해야합니다 (work/tmp에는 없으며 단일 위치에 배포 된 webapp). – ChssPly76

관련 문제