2010-12-08 8 views
3

저는 (원격) Tomcat 5.5 서버 (자체 턴키 리눅스와 함께 제공)에 웹 응용 프로그램을 배포했습니다. 자바 백엔드가있는 GoogleWebToolkit 웹 앱입니다.Tomcat에 성공적으로 배포되었지만 404 오류가 발생했습니다.

로그를 보면 모든 것이 정상적으로 진행되었습니다./manager 앱은 내 새 앱에서 'running = true'도 표시합니다.

그러나 문제는,은 /을 myApp URL로가는 내가 더 성공, 지금까지했던 어떤 (404)을 제공한다 :

  • 는 로컬 Eclipse를 사용하여 실행 않도록 제작은,이 미세
  • 를 작동
  • 배포 서버의 로그를 확인하고 Spring 및 일부 다른 라이브러리를로드합니다. 실제로, Eclipse에서 호스트 모드로 실행할 때와 동일한 메시지를 표시합니다.
  • /manager,/host-manager,/admin 응용 프로그램이 잘 실행됩니다.
  • /관리자의 응용 프로그램을 다시로드하는 것도 말한다 내가 직접 또한 404
  • 내가 ('로컬 호스트') 기본 호스트를 사용 준다 타격, 지정된 시작 파일, 실제로이 하나가
  • 'OK'/manager,/host-manager 및/admin apps와 마찬가지로
  • 인터넷에서 많은 검색을했는데 아무 소용이 없었습니다.
  • 다른 Tomcat (v6) 서버 (가정용 우분투 상자, 내가 배포하고 싶은 곳은 인터넷 어딘가에있는 VPS입니다.)가 작동합니다 ... VPS를 다시 설치 하시겠습니까?

문제를 해결하는 방법에 대한 힌트, 문제의 원인 또는 그 원인은 무엇입니까? 충돌이있을 수 있습니까? $ CATALINA_HOME/webapps 디렉토리에서 실행중인 다른 응용 프로그램이 있는데, 이는 같은 디렉토리에있는 myApp와 충돌 할 수 있습니까?

다음은 그래서 당신은 톰캣 앞에 앉아 아파치 인스턴스가 내 server.xml을

<?xml version="1.0" encoding="UTF-8"?> 
<Server> 
    <Listener className="org.apache.catalina.core.AprLifecycleListener"/> 
    <Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener"/> 
    <Listener className="org.apache.catalina.storeconfig.StoreConfigLifecycleListener"/> 
    <Listener className="org.apache.catalina.mbeans.ServerLifecycleListener"/> 
    <GlobalNamingResources> 
    <Environment 
    name="simpleValue" 
    type="java.lang.Integer" 
    value="30"/> 
    <Resource 
    auth="Container" 
    description="User database that can be updated and saved" 
    name="UserDatabase" 
    type="org.apache.catalina.UserDatabase" 
    pathname="conf/tomcat-users.xml" 
    factory="org.apache.catalina.users.MemoryUserDatabaseFactory"/> 
    </GlobalNamingResources> 
    <Service 
    name="Catalina"> 
    <Connector 
    port="8009" 
    redirectPort="8443" 
    address="127.0.0.1" 
    protocol="AJP/1.3"> 
    </Connector> 
    <Engine 
    defaultHost="localhost" 
    name="Catalina"> 
    <Realm className="org.apache.catalina.realm.UserDatabaseRealm"/> 
    <Host 
     appBase="webapps" 
     name="localhost"> 
    </Host> 
    </Engine> 
</Service> 
</Server> 
+0

myApp의 web.xml에 환영 파일이 나열되어 있습니까? localhost : 8080/myApp/index.html – JoseK

+0

예, 환영 파일이 있습니다. 불행히도 작동하지 않습니다. ( –

+0

방금 ​​다른 응용 프로그램을 배포하려고했습니다. tomcat (이번에는 tomcat 6)을 다른 서버 (우리 집의 리눅스 박스, tomcat5.5는 VPS)에 설치했습니다 .. 그냥 작동합니다 ... 따라서 서버와 관련이 있습니다. 다시 설치해야합니까? –

답변

2

입니다. Apache에 대한 일부 또는 모든 요청은 Tomcat AJP 포트 8009로 전달됩니다.이 Apache-Tomcat 브릿지가 제대로 작동한다고 가정하고 배포 된 애플리케이션에만 초점을 맞추면 Apache의 httpd.conf 파일에 JKMount 지시문을 추가해야 할 수 있습니다 ~ /myApp URL은 실제로 Tomcat으로 전달됩니다. 그렇지 않으면 Apache에 의해 제공되기 때문에 해당 자원을 찾을 수없는 경우 404 오류가 발생합니다.

2

HTTPD/conf.d 폴더에는 구성된 웹 응용 프로그램과 관련된 항목이 들어있는 다양한 .conf 파일이 있어야합니다. 새 .conf 파일을 만들거나 ProxyPass 항목을 기존 conf 파일에 추가 할 수 있습니다. ProxyPass 항목을 추가하면받은 요청을 Tomcat으로 라우트 할 수 있습니다. 예 : ProxyPass /myApp/ ajp://localhost:8009/myApp/. 위 예제의 경우 Tomcat은 AJP 커넥터 포트 8009에서 청취해야합니다.

관련 문제