問題タブ [jetty-9]
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 - 組み込み Jetty の JAR "resources/webapp" フォルダーの ResourceBase を指定する正しい URL は何ですか?
JAR ファイルのリソース フォルダー内に Web リソースを含む単純な埋め込み Jetty サーブレットが必要です。JAR にいくつかのプロパティ ファイルがあり、リソース パスを使用してそれらをロードします。Jetty リソース ベースを次のように指定します。
- リソース/ webapp
- セット: resource_handler。setResourceBase ( "webapp" )
- JAR ファイル内のそのリソースを指す正しい URL を介して。
JAR ファイル内のフォルダー。これは必要最小限の JAR ファイルです (WAR ではなく、フレームワークもなく、Springもありません)。初期テストでは、次の文字列のようなものに対して引き続き例外がスローされます。
サーバーは動作しているように見えますが、結果は index.html を見つけることができません。(更新:) この例は、Jetty の「埋め込みファイル サーバー」の例から取ったものです。この場合、Jetty Resource Baseが JAR ファイル (完全な URL) にマップされる必要があります。
- "jar:file:!/webapp/index.html",
次のように:
- resource_handler.setResourceBase(" jar:file:!/webapp ");
与えられた例の代わりに:
- resource_handler.setResourceBase(".");
そして、ブラウザの URL を次のようにマッピングします。
- ローカルホスト:8080/index.html
- ... 与える ...
- jar:ファイル:!/webapp/index.html
対照的に、以下の構成ファイルで機能する JAR パス。質問: Jetty リソース ベースが Index.html ファイルを提供できるようにするには、URLをどのようにする必要がありますか?
- 資力/
- 設定/
- 表示プロパティ
- 設定/
ファイルは「/config/display.properties」であり、これはリソースのロード操作を使用して同じプロジェクト コードで機能します。レイアウトは次のようになります。
一般的な考えを与える。
同様の質問:
jetty - クラスがJetty 9.2.2のlib/extフォルダーに含まれていてもClassNotFoundError
私の問題について聞きたいだけです。jetty サーバーをセットアップしようとしており、独自の webapp が含まれています。Jetty サーバーの webapp フォルダーに Web アプリケーションを配置します。また、web アプリケーションに必要なライブラリを jetty の lib/ext フォルダーに含めましたが、war ファイルには含まれていません。jetty サーバーを実行して webapp にアクセスすると、「NoClassDefFoundError」が発生します。
「java -jar start.jar」を使用して jetty サーバーを実行します。エラーの原因となったクラスを含むjarファイルがクラスパスにあることも確信しています。
私は何か見落としてますか?ありがとうございました。
multithreading - Linux Mint で一貫した Java 一時停止パターンを回避する方法
Linux Mint で Java アプリを実行しています。毎分、プログラムは非常に顕著な速度低下を示します-一時停止。一時停止は一貫して 3 ~ 4 秒です。同じプログラムのインスタンスをさらに実行すると、1 分ごとに 3 ~ 4 秒一時停止します。各プログラムは、毎秒異なる秒で停止します。
最新の更新:
最後の更新 (以下) の後、スレッド プールのスレッド カウントを増やすと、GUI の問題が解消されました。約 40 時間実行した後、Jetty のHttpClient
ブロック-GET ( Request.send()
) 呼び出しでスレッド リークが発生しました。Executor クラスを使用して仕組みを説明すると、数分ごとにメイン スレッドが実行されます。Executor を使用して独立したスレッドを実行し、HTTP GET コマンドである Jetty のHttpClient.request.send()
.
約 40 時間の操作の後、プールで実行されているスレッドの数が急増しましたHttpClient
。したがって、40 時間、同じスレッドが正常に実行されました。作業仮説は、その頃、1 つまたは複数のsend()
呼び出しが完了またはタイムアウトせず、呼び出し元のスレッドに戻っていないというものです。基本的に、この/これらのスレッドは Jetty クライアント内でハングします。
jVisualMVで定期的な各サイクルを見ると、各サイクルの通常の動作が見られます。一部の HttpClient スレッドは、ホストの GET のために起動し、実行して、わずか数秒で終了します。また、モニターには、(現在) 10 時間HttpClient
「存在」している Jetty スレッド プールに属する約 10 のスレッドがあります。
基盤となるクライアントまたはネットワーク処理で何らかのエラーが発生したことが予想されます。タイムアウト例外やプログラミング例外がなかったことに驚いています。私が今尋ねることができるいくつかの明確な質問があります。
HttpClient
ハングアップする可能性のある内部で何が起こるかRequest.send()
- コール リターンのタイムアウトとは何ですか? 絶対的なタイムアウトやロックのチェックなどがまだあると思います(いいえ?)
- I/O システムがハングアップして、呼び出し側スレッドをハングアップさせたままにすることができますか? Java は素直に ...
- スケジュールされた時刻にマネージャー スレッドを起動し、次に
- 次に
Http.Request.send()
起こるのは、 - 次の送信のためのプール起動からの新しいスレッド (発生したように見えます)。
send()
前者が宙ぶらりんになっている間
- これらのスタック スレッドを制限したり、他の方法でクリーンアップしたりすることはできますか?
これは、スレッド プール サイズを増やす前に発生していました。何が起こったかというと、「責任」が問題領域により集中するようになったということです。HttpClient
また、同じ (特定されていない) 時間帯にApache で再びロックアップが発生したため、基になるシステムが疑わしいです。
(事前更新) ...
観察された一時停止動作は、JavaFX GUI が更新/更新されないことです。ディスプレイの時計 (textView)、setText()
フリーズ中に 1 秒あたり 2 回の x 更新で呼び出しがログに記録されました (これは新しい情報です)。時計は (Mint Linux では) 更新されませんが、Windows で実行している場合は引き続き更新されます。GC、ログ、プローブなどに関する質問を繰り返すのを未然に防ぐために、答えは同じです。現在、数週間にわたって広範な診断を実行しています。この問題は、間違いなく Linux JVM / Linux Mint / Threads (JavaFX による) の組み合わせです。その他の新しいデータとして、スレッドプールの数を +2 増やすと、フリーズが解消されるようです。これを確認して数値を調整するには、さらなるテストが必要です。質問ですが」"
Windows でプログラムのインスタンスを数日間、一時停止することなく実行しました。Mint Linux プラットフォームで実行するとフリーズが見られますが、これは非常に一貫しています。
プログラムには、スケジュールに従って実行される実行中のスレッドがいくつかあります。1 つのスレッドが http ソケットのインターネットを開きます。その領域をコメントアウトすると、一時停止が消えます。ただし、Windows を使用した場合、その動作は見られません。実験は、Mint ネットワーキング I/O サブシステム、Linux スケジューリング、Linux Java 8 JVM、またはこの 2 つの間の相互作用に固有のものを示しています。
ご想像のとおり、私たちはこれに髪を引き裂いています。たとえば、ロギングをオフにすると一時停止が残りました。ロギングを再開し、同じ秒カウントで 60 秒ごとに一時停止して、http サーバーへの呼び出しを 1 回実行しました。これは、他の処理を行わない場合でも発生します。さまざまな http ライブラリなどを試しました。JVM または Linux にあることは明らかです。
これを解決する方法を知っている人はいますか?
maven-2 - Cargo - Jetty9 - webapp を開始しようとすると予期しないエラーが発生する
リモートの Jetty 9 に戦争を展開することに行き詰まっています。
app-server 側では cargo-jetty-7-and-onwards-deployer (バージョン 1.4.9) をデプロイしました。このコンポーネントは正しく実行されているようで、(get 要求で予想されるように) 次のように応答します。
HTTP エラー 400
/cargo-jetty-deployer/ へのアクセスに問題があります。理由: コマンド / が不明 Powered by Jetty://
デプロイするには、次の構成で cargo-maven2-plugin (バージョン 1.4.9) を使用しています。
実行時:mvn cargo:deploy
これにより、次のエラー メッセージが表示されます。
この後、ビルドとデプロイは失敗します。
Jetty のログを確認し、ログ レベルを DEBUG に上げましたが、サーバー側で何が問題なのかを示す兆候はありません。
誰かが私が間違っていることの手がかりを持っていますか? 何が問題なのかを示すより良いエラー メッセージを表示する方法はありますか?
どんな助けでも大歓迎です!:)
Ps ログから ip int を削除しました。
Pss 私が展開している戦争は以前にテストされており、Jetty で正常に動作します。
jetty - Jetty IdleTimeout
jetty7.6 から jetty-9.2 に移行しています。jetty 接続の idletimeout のデフォルト値が 10 分の 1 に減っていることがわかります。
桟橋内-7.6
jetty-9.2:
なんでそうなの ?
そして、このため、私は継続的に例外を下回っています:
ありがとう、アヌジ
jetty - プロダクションでの Jetty リクエスト統計の使用
Jetty のドキュメント - http://www.eclipse.org/jetty/documentation/current/statistics-handler.htmlから、コネクタ統計を有効にすることは非常に慎重に使用する必要があり、本番環境で使用するために有効にすべきではないようです。
ただし、リクエスト統計 (統計ハンドラーを追加することで有効にする) を有効にする必要があるかどうかを知りたいと思いましたか?
java - Jetty maven は、異なるポートで複数の Web アプリケーションをプラグインします。
最新バージョンの jetty maven プラグインを使用して、異なるポートで複数の Web アプリケーションを実行するにはどうすればよいですか?
org.eclipse.jetty:jetty-maven-plugin
9.2.2.v20140723
(執筆時のバージョン)。
例えば、
公式ドキュメントでは、これはhttpConnectorの下に記載されています
すばらしいので、構成しますname
が、それを にバインドするにはどうすればよいcontextHandler
ですか? これは私がこれまでに持っているものです
このまだ移行されていない wikiconnectorNames
は、 のプロパティを使用して実行できることを示唆していますWebAppContext
が、それはもう利用できません。