3

苦労した後、(リモートの)Tomcat 5.5サーバーにWebアプリをデプロイしました(Turnkey Linuxに付属しています)。これは、Javaバックエンドを備えたGoogleWebToolkitWebアプリです。

ログを観察すると、すべてがうまくいきました。/ managerアプリは、新しいアプリでも「running=true」と表示されます。

しかし、問題は、/ myApp URLに移動すると404が返されることです。これまでに行ったことは、成功しませんでした。

  • Eclipseを使用してローカルで実行され、そこで正常に動作することを確認しました
  • デプロイメントサーバーのログを確認すると、Springやその他のライブラリが正常に読み込まれます。実際、Eclipseでホストモードで実行したときと同じメッセージが表示されます
  • / manager、/ host-manager、/adminアプリケーションは正常に実行されます。
  • / managerにアプリをリロードすると、「OK」と表示されます
  • ウェルカムファイルを指定しました。実際にそこにあり、直接ヒットすると404も返されます。
  • / manager、/ host-manager、/ adminアプリと同じように、デフォルトのホスト('localhost')を使用します
  • インターネットで多くの検索をしましたが、役に立ちませんでした。
  • 別のTomcat(v6)サーバー(私の自宅のubuntuボックス、デプロイしたいのはネット上のどこかの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>
4

2 に答える 2

2

これで、Tomcat の前に Apache インスタンスが配置されました。Apache への一部またはすべてのリクエストは、Tomcat AJP ポート 8009 に転送されます。この Apache-Tomcat ブリッジが正常に機能していると仮定すると、デプロイされたアプリケーションのみに焦点を当てるため、おそらくApache のファイルにいくつかのJKMountディレクティブを追加して、 urlへのリクエストが確実に送信されるようにする必要があります。実際に Tomcat に転送されます。それ以外の場合、それらは Apache によって提供されます。つまり、それらのリソースが見つからない場合、404 エラーが発生します。httpd.conf/myApp

于 2011-03-30T06:47:58.083 に答える
2

HTTPD/conf.d フォルダには.conf、構成された Web アプリケーションに関するエントリを含むさまざまなファイルが必要です。新しい.confファイルを作成するか、ProxyPassエントリを既存の conf ファイルに追加できます。エントリを追加するProxyPassと、受信したリクエストを tomcat にルーティングできます。例えばProxyPass /myApp/ ajp://localhost:8009/myApp/。上記の例では、Tomcat は AJP コネクタ ポート 8009 でリッスンしている必要があります。

于 2012-03-20T14:59:58.237 に答える