2012-02-08 4 views
1

私は通常、IDEからGrails 2.0を実行しますが、TomcatとMysqlをインストールしたリモート仮想プライベートサーバ(linux)にアプリケーションをデプロイしようとしています。私は生産用のWARファイルを作成し、それをTomcat webapps dirにコピーします。ここでTomcatを再起動し、アプリケーションを起動してMySqlデータベースに最小限のブートストラップエントリを追加した後にいくつかの「修正」を行っています。grails 2.0 - リモートサーバ(Tomcat)へのWARのデプロイメント、非接続

しかし、私はGrailsアプリケーション(リモート)に接続できません。私がwww.mydomain.comを指定すると、私は(最終的に)メインのTomcatサーバー "welcome page"にアクセスできます。私が最後に "/"を追加した場合、私はTomcatにも行きます。私のgrailsアプリではありません。

私は自分のdevマシン上で動作していることを知っているフルコントローラパスを入れてから、リモートマシン上でそれらにアクセスしようとしています(grails.serverURLはhttp://www.mydomain.comとして設定されています)。これをやって、私はVPSの利用可能なメモリを持ついくつかの問題を抱えていたので、このエラーは、私が作成したベアボーンアプリケーションからです

HTTP Status 404 -- The requested resource (/BareBones/bare/create) is not available. 

を取得します。いずれにせよ、私の開発マシンでは、このBareBonesアプリのURLに到達することができます

期待どおりです。私が展開するとき、私は私が行うときに、同じHTTPステータス404エラー(利用できないリソース)を取得:

environments { 
    development { 
     grails.logging.jul.usebridge = true 
    } 
    production { 
     grails.logging.jul.usebridge = false 

     grails.serverURL = "http://www.mydomain.com" 
    } 
} 

http://www.mydomain.com/bare/create 

はConfig.groovyでは、このベアボーンアプリで私は、最小限の変更を持っています

Tomcatのserver.xmlファイルで、デフォルトの8080/8443ポートを80/443に変更しましたが、いずれかの設定を使用すると同じ問題が発生します。

私はおそらく簡単なステップを欠いているだけで、それが何であるか分かりません。


P.S. Tomcatに付属のsample.warファイル(Grailsではなく、単にhello-worldサーブレット)をデプロイすると、動作します。私はそれが私のFTPの命名規則が良いであることを示すように思われる、私は、サーバーに自分のコンピュータからsample.warをFTP'dので

www.mydomain.com/sample 

でそれにアクセスすることができるよ、とサーバーへのルーティングは、狭小権利でありますこれはGrails & Tomcatです。

+0

メモリの問題を別の質問に移動することをお勧めします。これは、独自のタイトルと回答が必要です。 –

+0

いいね、それを動かすでしょう。 – Ray

答えて

1

通常、devilモードでGrailsは、あなたが指摘したように、appNameのコンテキスト(ここではhttp://localhost:8080/BareBones/)をマウントします。

しかし、TomcatにマウントされるパスはGrails自身ではなく、Tomcatの設定や主にWARファイルの名前に依存します。

BareBonesがappNameであっても、ROOT.warとして展開すると、ルート"/"のコンテキストがマウントされます。 BareBones.warとして展開する場合は、devモードと同じdirをマウントする必要があります。

サイトは通常ROOTとしてマウントされるため、戦争"/"、私は​​つまり、あなたがDEVでも、ルートコンテキストパスを使用するようにそれを作るだろう、あなたのConfig.groovyファイルに

grails.app.context = "/"

を設定

をお勧めすることができますこれは、両方のDEV以来、それが簡単になりますプロダクションはどこにでも同じ相対パスを持ち、ホスト名:ポートだけが変更されます。

+0

1月 - ありがとう、今これを試しています(grails 2.0マニュアルのapp.contextを見つけていないのは率直に驚きました)。私が切り替える前に、すぐに結果を報告します。GrailsがBareBones.warに与えるデフォルトのBareBones-0.1.warという名前を変更しました。私がURLを../BareBones/bare/createにしようとすると、私はまだ応答がありません。もし私があなたを正しく理解すれば、これはうまくいくはずですか関連して、Grailsの公式ドキュメントがapp.contextにありますか? (私はJIRAを提出したいと思いますが、これは文書化されていないものです。 – Ray

+0

Tomcatが使用するマウントポイントは通常ファイル名に依存しますが、最初のアプリケーションが名前に関係なく常にrootになるような設定が追加される可能性がありますが、通常は動作するはずです。すばらしいGoogleが、Grailsの機能の起源だけを見つけました。http://jira.grails.org/browse/GRAILS-2534 –

+0

変更を試みましたが、www.mydomain.com/bare/createで回答が得られませんまたは... /裸/リスト。私の開発環境では、http:// localhost:8080/bare/createとなります。 Tomcatのserver.xmlに "正しい"ポート設定が何か分かっていますか?これを動作させるには、デフォルトの8080ポートから80ポートに切り替える必要がありますか? http://www.mydomain.com:8080/bare/createにアクセスすることはできません。 – Ray

関連する問題