1

Eclipse で単純なサーブレットを (動的 Web プロジェクトとして) 作成しました Azure SDK をインストールし、GUI を使用して Windows azure 用のプロジェクトをパッケージ化しました。

ルートフォルダにアプリをデプロイしたいのですが、

だから私は次のようにアクセスできます:

mysite.com/servlet?....

そして好きではない:

mysite.com/war_name/servlet?....

この回答を参照する: Tomcat のルートにアプリケーションをデプロイする

server.xml に追加しました

 <Context docBase="war_name" path="" reloadable="true" />

も試しました:

 <Context docBase="war_name" path="" reloadable="true" debug="0"><Context/>

リモート コントロールを使用して、server.xml にこの行が含まれていることを確認しました (「Host」終了タグの直前)。

そして、それは、

それでも、私は自分のアプリにアクセスできません。

私はJAVAが初めてで、Tomcat 7を使用しています。これが私が行ったことのスクリーンショットです:

ここに画像の説明を入力

4

2 に答える 2

2

Java webapp (例: war) をルート コンテキスト パスにマップする最も簡単な方法は、元の tomcat_home/webapps/ROOT を削除し、war ファイルの名前をROOT.war(アーカイブ スタイルでデプロイしている場合) に変更するか、フォルダーの名前をROOT(展開スタイルで展開している場合)。デフォルトの server.xml を変更する必要はありません

war ファイルが tomcat_home/webapps に配置されていることを確認します。

ただし、言及したようにwarファイル名を保持したい場合は、混乱を避けるために tomcat_home/webapps/ROOT フォルダーを削除してください

この回答には、Tomcat ルート コンテキスト パスのマッピングに関する詳細情報があります: https://stackoverflow.com/a/5328636/179630

于 2013-09-11T03:51:40.133 に答える
0

コードが含まれているため、これを回答として追加していますが、ほとんどが gerrytan の回答の拡張です。

Azure Eclipse プラグインを使用している場合は、Azure デプロイ プロジェクトで package.xml を編集して、Eclipse が自動的に戦争を構築し、その名前を ROOT.war に変更してからデプロイ プロジェクトに配置できます。

package.xml の終わり近くに、次のような行があるはずです。

<component cloudmethod="copy" cloudsrc="auto" cloudupload="always" deploydir="%SERVER_APPS_LOCATION%" deploymethod="copy" importas="<my_app.war>" importmethod="auto" importsrc="<path to my_app project>" type="server.app"/>

( workerroleタグ内にある必要があります)

この行で、"" を "ROOT.war" に置き換えて、次のようにします。

<component cloudmethod="copy" cloudsrc="auto" cloudupload="always" deploydir="%SERVER_APPS_LOCATION%" deploymethod="copy" importas="ROOT.war" importmethod="auto" importsrc="<path to my_app project>" type="server.app"/>

古い my_app.war をデプロイメントから削除します。次回デプロイすると、アプリは ROOT としてデプロイされます。そして、ゲリタンが言ったように、/webapps/ROOT事前にTomcatのフォルダーを削除してください。

編集:

もう 1 つの注意事項 - アプリケーションに .gitignore ファイル (または .svn のような同様のドット ファイル/ディレクトリ) が含まれている場合は<defaultexcludes remove="**/.gitignore"/>、windowsazurepackage taskdef の下の package.xml に追加します。

これがないと、(Ant を使用する) Azure プラグインは、Azure デプロイ間で .gitignore ファイルを削除しません。これは、他のすべてが削除されても、webapp フォルダー内のアプリケーションのフォルダーが残ることを意味します。Azure が再デプロイされると、Tomcat はアプリケーションのフォルダーがそこにあることを認識するため、アプリケーションを再デプロイしません。

于 2014-12-18T08:43:19.620 に答える