問題タブ [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.
java - 組み込みの Tomcat、Jersey、および WebApplicationInitializer がロードされない
既存の Jersey Web アプリケーションに tomcat を埋め込もうとしています。Tomcat を問題なく実行でき、JSP を webapp dir からロードすることさえできます。問題は、完全なコンテナーのように WebApplicationInitializer クラスを表示することです。これはクラス パスの問題であると確信しています。VirtualDirResource を追加してコンテキストを設定すると、Jersey アプリが読み込まれます。問題は、Jersey が JSP Viewable を読み込めなくなったことです。404 が返されます。ここでも、どこにも web.xml がありません。どのコードが役に立つかわからないので、答えがあると思われる場合はコード サンプルを求めてください。
java - 埋め込まれた Tomcat が jsf ページを実行しない
解決済み: 間違った名前空間を使用しました。この投稿の後の説明を参照してください。
埋め込まれた tomcat を実行して jsf ページに移動しようとすると、jsf タグがページにレンダリングされるだけで、実行されません。
編集:このmavenプロジェクトをに追加しました
単にそれを複製する
Tomcat 組み込みサーバーを作成するためのファイルは次のとおりです。
web.xml (src/main/webapp/WEB-INF の下) は次のとおりです。
index.xhtml は (src/main/webapp/ の下):
そして最後に pom.xml
どこに問題があるのか わかりませんが、何かを見逃していたと思います。
誰でも助けることができますか?
eclipse - 不要/問題のある依存関係を公開する Eclipse/Tomcat
最初に、少し背景を説明します。
Eclipse Java Web プロジェクトを Gradle に変換する作業を行っています。Vaadin フレームワークを使用し、現在 Ant/Maven/Ivy でプロジェクトを管理しています。Web プロジェクトが依存する共通コードを含む別のプロジェクトがあります。どちらのプロジェクトでも、ライブラリ ファイル (JAR) はソースに含まれているだけで、VCS にコミットされています。Gradle への切り替えにより、リポジトリから依存関係を取得するための推奨される方法を使用します。主にMaven Central。
現在の Ant ビルド スクリプトに対応する Gradle ビルド スクリプトの作成が完了しました。プロジェクトごとに 1 つの Gradle ビルド スクリプトがあり、設定ファイルと共に構成インジェクション用にルートに 1 つあります。私は両方のプロジェクトにJavaとEclipseプラグインを使用し、さらにWeb プロジェクトにはwarとvaadinプラグインを使用しています。
今問題に。Gradle を使用して WAR を構築すると、完全に機能し、WEB-INF/libディレクトリには、依存関係の構成に基づいて、期待する JAR のみが含まれます。ただし、Eclipse 内で Tomcat を使用してプロジェクトを公開すると、 WEB-INF/libディレクトリに多数の追加の JAR が作成されます。ほとんどの JAR は無害で必要のないものであるため、WAR から除外しましたが、Tomcat に既に含まれているために実際に問題のあるものもいくつかあります。あるケースでは、JAR を無視するだけで、次の通常のメッセージが表示されます。
[Tomcat] validateJarFile(*) - jar がロードされていません。
他のケースでは、アプリケーションが正しく動作しているように見えても、実際にはコンソールで例外を受け取ります。また、 testCompile構成に関連付けられているすべての依存関係も公開されていることに気付きましたが、これは正しくないようです。
問題のある正確な JAR はtomcat-jdbcとservlet-api-2.5です。共通コードをコンパイルするには、tomcat-jdbc JAR が必要です。servlet-api-2.5 JAR は、実際にはvaadin-client-compilerの単なる推移的な依存関係です。Web プロジェクトでvaadin-client-compilerの依存関係を削除しました。これは必要ないように思われるためですが、Gradle のvaadinプラグインの構成によってまだ取り込まれているようです。ただし、どちらの場合も、 warプラグインのprovidedCompile構成を使用して、それらを WAR から除外しています。
私の質問は、Tomcat/Eclipse がこれらの JAR を公開しないようにするにはどうすればよいですか? Gradle と Tomcat/Eclipse はどのように通信しますか? 私が収集できることから、Gradle と Tomcat/Eclipse は、 GradleのEclipseプラグインが変更する.classpathを介して間接的にのみ通信しているようです。また、Gradle のeclipse-wtpプラグインも試しました。問題のある JAR がまだコピーされていたため、問題は解決していないように見えました。このプラグインを使用する必要があるのか 、それとも単純にEclipseプラグインを使用できるのかさえ、実際にはわかりません.
また、 Eclipse MarketplaceからGradle Integration for Eclipseの「プラグイン」をインストールしたことも付け加えておく必要があります。そこで、追加する [構成] -> [Gradle プロジェクトに変換] オプションと、それが提供する[Gradle] -> [依存関係を更新]機能を使用しました。それ以外は、少しバグがあることがわかったので、ほとんどの場合、コマンド ラインから Gradle を実行しています。
以下は、私のマシンでgradle -vを実行した場合の出力です。
追加の説明が必要な場合はお知らせください。確かに私のシナリオは非常に一般的であるため、何か間違ったことをしている、または構成が欠落しているに違いないと思います。多くの開発者は Eclipse 内で Tomcat を使用して Web アプリケーションをローカルでテストしていますが、Gradle の人気により、以前にこれに遭遇したことがない人がいたら驚くでしょう。Tomcat/Eclipse に関する限り、Gradle への切り替えによる主な違いは、依存関係がソースに直接リンクされるのではなく、リポジトリから読み込まれるようになったことです。
どんな助けでも大歓迎です。
tomcat7 - 組み込みTomcatサーバーでカスタムレルムを設定するには? 私はSpring Bootを使用しています。
組み込みの tomcat のカスタム領域を設定するには? 私はSpringBootを使用していますが、Embeddedservletcontainercustomizerを介してカスタムレルムを追加する方法がわかりません.
jndi - Tomcat コンテナーが組み込まれた Spring Boot で JNDI コンテキストを作成する方法
}
私はSpring Bootを使用しており、データソースのJNDIコンテキストを作成する組み込みのTomcatで起動しようとしています:
@ImportResource を削除すると、アプリケーションは正常に起動します。Tomcat インスタンスに接続できます。すべてのアクチュエータ エンドポイントを確認できます。JConsole を使用して、MBean でデータソースを確認できるアプリケーションに接続できます (Catalina -> Resource -> Context -> "/" -> localhost -> javax.sql.DataSource -> jdbc/mydatasource)。
ここでは、JConsole 経由で MBean も表示されます (Tomcat -> DataSource -> / -> localhost -> javax.sql.DataSource -> jdbc/mydatasource)。
ただし、実際に JNDI を介して mydatasource を探しているものを @ImportResource すると、それが見つかりません。
インポートした xml ファイルの関連部分
上記で構成している ContextResource は、アプリケーションが tomcat コンテナーにデプロイされるときにデプロイされる context.xml で使用していたものとまったく同じパラメーターを使用しています。インポートした Bean とアプリケーションは、Tomcat コンテナーにデプロイすると正しく動作します。
というわけで、文脈はわかったようですが、ネーミングが正しいとは思えません。リソース名のさまざまな組み合わせを試しましたが、このコンテキストでバインドされた「comp」を生成できないようです。