2013-01-10 8 views

答えて

7

ビット詳細なアプローチ

まず方法:

最初のシャットダウンあなたのTomcat [binディレクトリ(sh shutdown.sh)から]は、あなたが があなたのTomcatのwebappsフォルダのすべてのコンテンツを削除する必要があります(rm -fr * ) WARファイルの名前をROOT.warに変更してください。 [binディレクトリ(sh startup.sh)から]

第2の方法:

は、元の名前の下に、CATALINA_BASE/webappsであなたのwarファイルを残す - server.xmlファイルでのHost要素に オートデプロイとdeployOnStartupをオフにします。 は、server.xmlのすべてのアプリケーションコンテキストを明示的に定義し、パス とdocBaseの両方を指定します。これは、すべてのTomcat 自動デプロイメント・メカニズムを無効にしたためで、これを実行する必要があります.は、server.xmlでコンテキストが見つからない限り、アプリケーションをデプロイしません。

注:この最後の方法はまた、任意の アプリケーションに変更を加えるためには、Tomcatを停止して再起動する必要がありますことを意味していること

第3の方法:CATALINA_BASE/webappsの外

置きますwarファイルを(それは二重の展開を防ぐために 外でなければなりません)。 - コンテキストファイルROOT.xml
CATALINA_BASE/conf//に配置します。このコンテキストファイル内の単一の要素には、warファイルの場所を指す docBase属性が必要です。パス要素 は設定しないでください。これは、 ケースROOT.xmlにある.xmlファイルの名前から導出されます。詳細については、上のコンテキストコンテナを参照してください。

+1

方法3: 'ROOT。 xml'は 'CATALINA_BASE/conf/Catalina/localhost'に入る必要があります(技術的には' conf// 'ですが、' Catalina'と 'localhost'はデフォルトの' server.xml ')confに直接はありません。 –

+0

私は最初の方法を試しました、ほとんどの時間 "http://myapp.mydomain.com"私に悪い要求エラーを与える、私はIPでアプリケーションにアクセスする場合、そのうまく動作します。これのための解決策は何ですか。私は風袋​​6を使用しています。 – n92

2

1)アプリサーバは

2)GrailsアプリケーションのコンテキストパスがあるべきROOTアプリケーションとしてのGrailsアプリケーションを持つように構成する必要があり、「/」またはapp.context =/

+0

あなたの環境はどういうものですか? – TheWhiteRabbit

+0

私の環境はプロダクションで、動作していないので、 "grails prod war"を使ってwarファイルを作成しました。 – n92

+0

最初の方法 "アプリケーションサーバーをgrailsアプリケーションをROOTアプリケーションとして設定する必要があります"私は – n92

1

あなたが作ることができますTomcatは、単純にROOT.warという名前をつけて、つまりGrailsによって生成されたmyapp-0.1.warを取り出して、TOMCAT_DIR/webapps/ROOT.warにコピーすることで、Webアプリケーションをルートコンテキストとして提供します。

あなたConfig.groovygrails.serverURLの設定をお持ちの場合は、Grailsのによって生成された任意の絶対リンクは

environments { 
    production { 
    grails.serverURL = 'http://myapp.mydomain.com' 
    } 
} 

正しいしかし、Grailsの2に、それは通常、安全であることを保証するために、本番環境のためにこれをオーバーライドする必要があります。 grails.serverURLを完全に省略し、アプリが実行時に適切な値を推測できるようにします。正しいHostヘッダーを通過しないリバースプロキシの背後で実行している場合にのみ必要です。

関連する問題