問題タブ [embedded-tomcat-7]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
web-applications - 組み込み Tomcat と Web アプリ用の異なる Log4j
Embedded Tomcat (バージョン 7.028) を使用しています。私の組み込み Tomcat サーバーは、1 つ以上の Web アプリを追加できる構成可能なサーバーです。
Embedded Tomcat のエラー/情報メッセージを 1 つのログ ファイルに記録し、Embedded Tomcat にデプロイされたすべてのアプリケーションに対して異なるログ ファイルを維持したいと考えています。Embedded Tomcat のクラスパスに log4j.properties ファイルを配置しました。正しく読み取られており、Tomcat の情報とエラー メッセージをログに記録できます。また、組み込み Tomcat のすべてのロガーを非静的として宣言しました。
log4j.xml を webapp の WEB-INF/classes の場所に配置して、組み込み Tomcat の log4j.properties をオーバーライドしました (リンクを参照)。しかし、log4j.xml は開始されていません。Tomcat からの log4j セットアップのみが使用されています。
この問題を克服する方法を教えてください。xml またはプロパティ ファイルに追加できる構成はありますか?
trinidad-gem - Trinidad への MIME 定義の追加
jruby アプリケーションをホストするために trinidad gem を使用しています。
ただし、.woff
または.ttf
フォント ファイルの要求には、400 Bad Request
.
プロジェクトをwarbler
jar ファイルに入れ、通常の Tomcat インスタンスに jar ファイルをダンプしていたとき、これらの拡張子の MIME タイプ定義をweb.xml
.
ただし、トリニダード宝石が使用するTomcatのインスタンスに対してこれを行う方法がわかりません。ドキュメントにはそれがリストされていないようです。web.xml
Webアプリケーションのデフォルトとして使用するファイルを指定することについて言及していますが、それはフォルダーに配置されているようで、TomcatのファイルWEB-INF
を入れてもサーバーは起動しません。conf/web.xml
また、次の行を に追加しようとしましたconfig/initializers/mime_types.rb
。
しかし、これはフォルダーに影響を与えるようには見えませんpublic
(もしそうなら、私は驚くでしょう...)。
これを行う方法はどこにありますか?
java - Tomcat に埋め込まれた docBase の addContext の正しい使用法
展開されたフォルダー内にないローカル ディレクトリからファイルを提供するために、埋め込まれた Tomcat インスタンスでコンテキストを設定する方法を知っている人はいますか?
標準の server.xml では、次のようになります。
次の tomcat 埋め込み呼び出しでさまざまなバリエーションを試しましたが、成功しませんでした。
私も試しました:
このgrailsの質問は同じ線に沿っていたようです:
grails: 開発中の埋め込み tomcat にコンテキストを追加
しかし、私はgrailsを使用していません。(Java を使用)
私が使用している完全な起動コードは次のとおりです。
java - tomcat-maven-plugin でコンテキスト設定を適用する方法は?
私の目標は、tomcat-maven-plugin を使用していくつかの Web アプリケーションをデプロイし、それらの間でクロス コンテキストの相互作用を行うことです。これはプロトタイピング用です。そこで、2 つの war モジュール (core と webapp1) を作成し、適切な context.xml を両方の META-INF フォルダーに配置し、tomcat7 プラグインを構成しました。ただし、Web アプリケーションはデフォルトのコンテキスト構成でデプロイされました。一般的な Tomcat 7 コンテナーにデプロイすると、すべてが完璧に機能します。別の webbapp のコンテキストにアクセスできます。
私の質問は、私が間違っていることは何ですか? それとも、これは組み込みのTomcatの制限ですか(違いについては何も見つかりませんでしたが)?
ここに私のcontext.xmlがあります:
tomcat プラグインの設定 (重要かどうかはわかりませんが):
コアサーブレットのコードは次のとおりです。
tomcat - プログラムでGZIPTomcat7を有効にする(組み込み)
Tomcat7(組み込み)を使用しています
このようなもの...
jspサーブレットへの*.pdfマッピングを有効にしました(IEで発生した問題)この構成でGZIPを有効にする方法はあります(web.xmlはありませんが、必要に応じて追加して機能させることができます)これをweb.xmlに追加する必要があることがわかっただけです(これは持っていません!)
java - tomcat7-maven-plugin: 複数の webapps を実行しますが、ポート 8080 は既に使用されています
tomcat7-maven-plugin
組み込みのTomcatコンテナーをセットアップし、Webアプリケーションをpre-integration-test
段階的に実行し、統合テストを実行してから、Tomcatを段階的にシャットダウンするために使用しようとしていますpost-integration-test
。プロジェクトはマルチモジュールの Maven プロジェクトです ( 、 などを含むapp1
) app2
。親pom.xml
は次のようになります。
それから私はただ走りmvn clean integration-test --projects=app1,app2
ます。2 つ目のアプリが起動するとjava.net.BindException
、
tomcat7-maven-plugin
では、組み込みの tomcat で複数の webapps を実行するための構成はありますか?
spring - テスト アプリケーションと組み込みの tomcat の間で Spring コンテナーを共有する
cucumber-jvm を使用して、アプリケーションに統合テスト レイヤーを記述しています。私たちが見つけた課題の 1 つは、テストと Web アプリケーションの間でデータベースを管理することです。
典型的なシナリオは、シナリオの特定のステップでいくつかのエンティティを永続化し、次にユーザー インターフェイスでいくつかのアクションを実行して、さらに多くのエンティティを永続化することです。最後に、データベースをクリーンアップします。cucumber-jvm テストは 1 つの jvm で実行され、Web アプリケーションは別の jvm で実行されているため、(少なくとも私が認識している方法では) トランザクションを共有できないため、データベースを手動でクリーンアップする必要があります。
私が最初に考えたのは、cucumber-jvm テストと同じ JVM で組み込みのメモリ内データベース (HSQLDB) から実行される組み込み Tomcat サーバーを使用することでした。このようにして、単一のスプリング コンテナーを共有し、拡張することで、すべてのオブジェクトを取得できる単一のトランザクションを共有できる可能性があります。
私の最初のテストでは、Spring が 2 回ロードおよび構成されているように見えます。1 回目はテストが開始されて cucumber.xml が読み取られるとき、2 回目は組み込みの tomcat が開始されて Web アプリケーションがその applicationContext.xml を読み取るときです。これらは 2 つの完全に別のコンテナーにあるように見えます。これは、1 つのコンテナーで指定されたオブジェクトを別のコンテナーで解決しようとしても解決されないためです。構成を複製すると、同じ ID を持つ重複した Bean に関するエラーが発生します。
テスト アプリケーションと組み込みの tomcat の両方に同じコンテナーを使用するように Spring に指示する方法はありますか?
Spring 3.2.2.GA と Embedded Tomcat 7.0.39 (両方のライブラリの最新バージョン) を使用しています。
私はクレイジーですか?技術的な詳細を提供する必要がありますか? 間違った用語を使用している場合はお詫び申し上げます。
ありがとう
ps 私の問題に精通しているようで、私が試している解決策に代わる解決策を提案できる場合は、お知らせください。
spring - カスタム web.xml を埋め込み tomcat に指定する
組み込みの tomcat インスタンスを使用するときにweb.xml
、標準とは異なるものを指定する方法はありますか?WEB-INF/web.xml
web.xml
私src/test/resources
(または他の領域)に a を配置しweb.xml
、組み込みの tomcat を起動するときにそれを参照したいと思います。
これがTomcatインスタンスを開始するための私の既存のコードです
Tomcat インスタンスからこのサーバーを起動しています。単体テストを実行するときに次のことを実行したいと考えています。
- オフにする
contextConfigLocation
- 埋め込まれた tomcat
ContextLoaderListener
の親を設定するカスタムを指定します。ApplicationContext
このファイルは次のように指定できます。
編集
WEB-INF
多くの欲求不満の後、私が何をしても、Tomcat に を探すよう説得することはできないことに気づきましたweb.xml
。完全に無視して、プログラムweb.xml
で項目を設定する必要があるようです。web.xml
私はこの構成で終わった:
テストを構成するための cucumber.xml
applicationContext-core.xml - サービスが構成されている場所
カスタム ContextLoaderListener
修正された組み込み Tomcat ラッパー
ステップの定義
アクションクラス
これにより、埋め込まれた tomcat が正しく起動し、Web ページに移動しようとするまで、すべてがうまくいくように見えます。StepDefs
クラスでは、がEmployeeEntityService
正しく注入されます。ただし、Action
クラスでEmployeeEntityservice
は、 は注入されません (そのままですnull
)。
私の知る限り、ApplicationContext
埋め込まれた Tomcat の親を正しく設定しています。では、サーバーが親コンテキストを使用して取得しないのはなぜEmployeeEntityService
ですか?