18

開発中に「webapp」ディレクトリの別の場所を検索するようにTomcatを構成することは可能ですか?

あるディレクトリにgitソースがあり、別のディレクトリにtomcatがインストールされています。CSSやJavascriptに簡単な変更を加えるたびに、2か所で変更を加えたり、ファイルを手動でコピーしたり、再構築/デプロイしたりする必要はありません。


編集-2013年2月21日

残念ながら、どの提案もうまくいきませんでした。それは、私が物事をどのようにレイアウトしているかについて十分な情報を提供しなかったことが原因である可能性があります。

「開発」というホームディレクトリ(Macを使用)のディレクトリにTomcatをインストールしています。

/Users/dbrogdon/Development/apache-tomcat-7.0.35

その隣にgi​​tソースがあります。

/Users/dbrogdon/Development/myproject

myprojectディレクトリでは、実際のWebファイルは次の場所にあります。

/Users/dbrogdon/Development/myproject/application/appname/src/main/webapp

コンパイルするとき、appname.warをに入れます

/Users/dbrogdon/Development/apache-tomcat-7.0.35/webapps

その更新された情報に基づいて、自分conf/server.xmlまたはのいずれかでdocBaseとして何を提供する必要がありますかconf/Catalina/localhost/appname.xml

4

7 に答える 7

3

tomcatのインストールでは、ディレクトリ「conf」の下に、ファイルserver.xmlがあります。そのファイルでタグ「Host」を検索します。あなたは次のようなものを見つけるでしょう

<Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true">

appbaseをWebアプリケーションディレクトリの親フォルダに変更します。したがって、アプリケーションの「myapp」ディレクトリがc:\ git \ sourceの下にあるとすると、appBaseを「c:\ git\source」と入力します。

Tomcatを再起動します。これで、Tomcatは「c:\ git \ source」内を調べて、Webアプリケーションの代わりにデプロイする必要のあるすべてのWebアプリケーションを探します。

appbaseの使用法 を説明するTomcat構成へのリンクhttp://tomcat.apache.org/tomcat-7.0-doc/config/host.html

この仮想ホストのアプリケーションベースディレクトリ。これは、この仮想ホストにデプロイされるWebアプリケーションを含む可能性のあるディレクトリのパス名です。絶対パス名または$CATALINA_BASEディレクトリからの相対パス名を指定できます。Webアプリケーションの自動認識とデプロイメントの詳細については、「自動アプリケーションデプロイメント」を参照してください。指定しない場合、 デフォルトのwebappsが使用されます。

于 2013-02-15T20:51:00.583 に答える
3

あなたが楽しみにしていることをするための可能な方法

  • 静的コンテンツを提供し、動的コンテンツをTomcatサーバーにルーティングするためのApacheWebサーバーの構成。これは、JSPリクエストをTomcatにプロキシするmod jkコネクタを使用して行われますが、image、jsなどの静的コンテンツを提供するためにこのプロキシを渡します

で使用して完了worker.properties

<Location *>
SetHandler jakarta-servlet
SetEnvIf REQUEST_URI \.(html|png|gif|jpg|css|js)$ no-jk
</Location>

これは、すべてのデプロイメントアーキテクチャを変更するため、お勧めできない場合があります

  • Zenilがあなたのconfでserver.xmlを設定することを提案した解決策

制限は、Tomcatにデプロイされているすべてのアプリケーションがから提供されることD:/newWebAppsです。これは、ソースリポジトリにあるアプリケーションのみをTomcatにマップする必要があるため、目的を果たさない場合があります。

  • 与えられたシナリオでは、以下がより適切だと思います

ファイルを作成し、applicationName.xml以下を定義します

<?xml version="1.0" encoding="UTF-8"?>
<Context docBase="D:\newWebApps" path="/js/*" />

このファイルを\conf\Catalina\localhostディレクトリに配置します。Tomcatはこれを自動的に取得します

今、あなたはこれにアクセスすることができます

http://servername:8080/applicationName/js/anything.js

Tomcatのデフォルトディレクトリ外でのdocBaseの設定の詳細については、このhttp://tomcat.apache.org/tomcat-7.0-doc/config/context.htmlを参照してください。

于 2013-02-20T16:24:37.600 に答える
2

ローカルのApacheサーバーを使用して、別の場所から取得するHTML / CSS /JS/ファイルを書き直すことができます。

JSファイルを書き換える方法の例については、この質問を参照してください。HOWTO:画像、css、jsのリクエストをアプリケーションごとに異なるフォルダーに書き換えますか?

これで、Tomcat URLをTomcatに送信するようにApacheを構成できますが、apache configでこれらの書き換えを実行すると、css / js/htmlファイルを別のフォルダーから完全に取得できます。

このTomcatフィルターを使用できる場合があります:http ://tuckey.org/urlrewrite/ 、静的ファイルをホストするためにApache Webサーバーが必要ですが、Tomcatを使用してメインのTomcat URLにアクセスし、リダイレクトを追加することができます。すべての静的ファイルのapacheインスタンス。これにより、Apacheでmod_jkなどを設定する必要がなくなります。

于 2013-02-14T17:20:14.877 に答える
1

server.xmlを更新し、次の2つの目的でアプリケーションの「ホスト」を変更します。

1)アプリを起動するTomcatのgitソースディレクトリを指す。これにより、2つの場所で変更を加えたり、変更をコピーしたりする必要がなくなります。

必要な変更:アプリケーションの「ホスト」を更新し、「appBase」をgitソースディレクトリに設定します。

<Host name="localhost"  appBase="/Users/dbrogdon/Development/myproject/application/appname/src/main/webapp"
            unpackWARs="true" autoDeploy="true">

2)静的コンテンツを提供するための別の場所を追加します。これにより、css/jsを変更するたびにtomcatを再起動しないようにすることができます。

必要な変更:jsとcssを提供するためのコンテキストを追加します

<Host name="localhost"  appBase="/Users/dbrogdon/Development/myproject/application/appname/src/main/webapp"
            unpackWARs="true" autoDeploy="true">
    <Context docBase="/Users/dbrogdon/Development/myproject/application/appname/src/main/webapp/js/" path="/js/*" />
    <Context docBase="/Users/dbrogdon/Development/myproject/application/appname/src/main/webapp/css/" path="/css/*" />
</Host>
于 2013-02-21T15:54:59.457 に答える
1

私が質問を正しく理解している場合は、tomcatのwebapps / MY_WEBAPPが、gitリポジトリをチェックアウトした場所の内部を指すようにするだけなので、「一度」変更できます。静的リソースのみを編集していると仮定すると、tomcatがそれらをキャッシュすることはないと思います。そのため、tomcatのwebapps/からgitフォルダーの場所へのシンボリックリンクを作成する必要がなくなる可能性があります。または、webapps / x / yからgitの同等のフォルダー(または特定のファイル)にシンボリックリンクします。

また、TomcatがJSPクラスと静的を「ホットスワップ」できるという噂も聞いたので、関連する場合は、Tomcatでホットデプロイを有効にする方法

于 2017-10-12T17:19:33.127 に答える
0

追加のコンテキストを定義することで、別の場所を使用できるようになります。http://www.coderanch.com/t/474965/Tomcat/Deploying-application-webapps-tomcatおよびhttp://tomcat.apache.org/tomcat-6.0-doc/config/context.htmlを参照してください。

于 2013-02-14T17:18:21.977 に答える
-2

gitソースコードがIDEで開かれると、tomcatサーバーを追加した後、tomcatディレクトリ内の環境を参照するようにtomcatの「ランタイム環境」を構成できます。

于 2013-02-12T00:56:24.443 に答える