問題タブ [apache-commons]
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 - java.util.loggingをlog4jに送信する方法は?
log4jに対してすべてのロギングを行う既存のアプリケーションがあります。log4jを使用するか、Commons Loggingに対してログを記録する他の多くのライブラリを使用します。これにより、環境内でlog4jが使用されることになります。依存関係の1つは、slf4jに対してもログを記録します。これは、最終的にはlog4jにも委任されるため、正常に機能します。
ここで、キャッシュのニーズに応じて、このアプリケーションにehcacheを追加したいと思います。以前のバージョンのehcacheはcommons-loggingを使用していましたが、これはこのシナリオでは完全に機能していましたが、バージョン1.6-beta1では、commons-loggingへの依存関係が削除され、代わりにjava.util.loggingに置き換えられました。
java.util.loggingで利用できる組み込みのJDKロギングにあまり詳しくない場合、log4jに対してJULに送信されるログメッセージをログに記録する簡単な方法があります。これにより、既存の構成を使用して、今後のロギングを設定できます。 ehcacheから?
JULのjavadocsを見ると、LogManager
使用する実装を変更するために一連の環境変数を設定し、おそらくそれを使用しLogger
てJULLogger
クラスでlog4jをラップできるようです。これは正しいアプローチですか?
皮肉なことに、ライブラリで組み込みのJDKロギングを使用すると、他の地域(ほとんど)が代わりにサードパーティのライブラリを使用している場合に、このような頭痛の種が発生します。
java - Apache Commons-Exec からの大量の出力のキャプチャ
私は Java でビデオ アプリケーションを作成してffmpeg
おり、その出力を実行して標準出力にキャプチャしています。Java の の代わりに Apache Commons-Exec を使用することにしRuntime
ました。ただし、すべての出力をキャプチャするのは困難です。
プロセス間通信の標準的な方法であるため、パイプを使用するのがよいと思いました。ただし、 and を使用した私のセットアップPipedInputStream
はPipedOutputStream
間違っています。動作しているように見えますが、ストリームの最初の 1042 バイトのみで、不思議なことにPipedInputStream.PIPE_SIZE
.
私はパイプの使用にあまり関心がありませんが、データの速度と量 (解像度 512x384 の 1 分 20 秒のビデオでは 690M
のパイプ データが生成される) のために、(可能であれば) ディスク I/O の使用を避けたいと考えています。
パイプからの大量のデータを処理するための最適なソリューションについて考えていますか? 私の 2 つのクラスのコードは以下のとおりです。(はい、sleep
悪いです。それについての考えは? wait()
とnotifyAll()
?)
WriteFrames.java
YUV4MPEGPipeParser.java
java - 複数の共同作業者による単体テスト
今日、私は非常に難しいTDD問題に遭遇しました。HTTPPOSTを介してサーバーと対話する必要があります。必要なことを実行するApacheCommonsHttpClientを見つけました。
しかし、私はApacheCommonsからのコラボレーションオブジェクトの束になってしまいます。
私はPostMethod
オブジェクト、オブジェクト、オブジェクトRequestEntity
を持っていHttpClient
ます。ala依存性注入を渡すのは比較的快適HttpClient
ですが、他の共同作業者についてはどうすればよいですか?
たくさんのファクトリメソッド(またはファクトリクラス)を作成してコラボレーターを作成することもできますが、あまりにも嘲笑しすぎるのではないかと少し心配しています。
ファローアップ
答えてくれてありがとう!私の残りの問題は次のような方法です:
戻り値がからのものであることを正しく確認するにはどうすればよいpost.getResponseBodyAsString()
ですか?私もモックpost
する必要がありclient
ますか?
.net - .Net の Apache Commons IO
Apache Commons IO for .Net のようなライブラリはありますか?
次の機能を探しています。
- IOUtils.toByteArray(ストリーム);
- IOUtils.toString(ストリーム);
- FileUtils.write*();
- ディレクトリウォーカー。
java - .Net 用の org.apache.commons.lang.Validate の実装はありますか?
.Net 用の org.apache.commons.lang.Validate の実装はありますか?
python - PropertyUtilsBeanに相当するPython
疑問に思っていたのですが、Apache CommonsのPropertyUtilsBeanに相当するPythonはありますか?
編集:
たとえば、私はこの割り当てを行うことができるようにしたいと思います
文字列として「y[2].z」を指定します。
注意してください、私は車輪の再発明をしたくないという理由だけで尋ねています:)
java - Java TelnetClient が「続行するには何かキーを押してください」でハングする
Linux で実行されorg.apache.commons.net.telnet.TelnetClient
、いくつかのコマンドを使用してリモート サーバーに telnet で接続する Java プログラムがあります。問題は、ユーザーに「続行するには任意のキーを押してください...」と要求する出力表示が表示されると、断続的にハングすることです。プログラムは、実行する 10 回ごとに約 1 回、実行する 7 台のサーバーのうち約 1 回でハングします。サーバーのうち3つだけに問題があります。また、Windows ボックスで同じプログラムを実行すると、常に動作します。
他の誰かがこのような問題に遭遇したかどうか疑問に思っていましたか?
テストサーバーでは、テストするたびにハングアップできます。ハングしない他のコマンドを送信しようとしましたが、うまくいきません。改行、改行、文字の追加、改行の入れ方はすべて試しました。クライアントを継続させるものはないようです。
私が最初に考えたバッファのフラッシュについて言及するのを忘れていました。フラッシュコマンドは、問題が発生する可能性があると思われる場所に配置しました。
また、実行して書き込み行からの出力を見ると、「任意のキーを押してください」が検出され、続行しますが、端末がハングして続行されないことにも言及します。
電話をかける場所のコード:
StackTrace: java.net.SocketTimeoutException: java.net.SocketInputStream.socketRead0(Native Method) で読み取りタイムアウト:218) で java.io.BufferedInputStream.read(BufferedInputStream.java:237) で java.io.FilterInputStream.read(FilterInputStream.java:66) で java.io.PushbackInputStream.read(PushbackInputStream.java:122) で org .apache.commons.net.io.FromNetASCIIInputStream.__read(FromNetASCIIInputStream.java:77) at org.apache.commons.net.io.FromNetASCIIInputStream.read(FromNetASCIIInputStream.java:175) at java.io.BufferedInputStream.fill(BufferedInputStream) org.apache.commons.net.telnet.TelnetInputStream の java.io.BufferedInputStream.read(BufferedInputStream.java:237) の .java:218)。__read(TelnetInputStream.java:122) at org.apache.commons.net.telnet.TelnetInputStream.run(TelnetInputStream.java:564) at java.lang.Thread.run(Thread.java:619)
ハングする場所: 英語 1 6000 4462 26 % 13826 11056 20 %
何かキーを押すと続行します....
java - ApacheHttpClientを使用して応答サーバーの名前/IPを取得できますか?
私はApacheHttpClient3.xを使用してBigIPに接続し、BigIPがリクエストを1-Nマシンの1つにリダイレクトします。ただし、N台のマシンのどれが実際にリクエストを受け取ったかを知る必要があり、この情報を取得する方法がわかりません。運が悪かったのでResponseヘッダーを調べたので、この情報が実際にどこかに提供されているのだろうか?追加のメタデータを取得するために使用できるヘルパー/ユーティリティクラスはありますか?
ありがとう。
java - Apache Date Validator パターンに関する質問
org.apache.commons.validator.routines.DateValidator を使用して、単純な日付パターン「dd/mm/yyyy」で日付を検証しています
残念なことに、「1992 年 2 月 2 日」という形式で日付を渡すと、無効な日付として宣言され、「d/m/yyyy」という形式を使用すると宣言されます (Java SimpleDateFormat では、これらの形式は両方とも機能します)。の場合、日付 "02/02/1992" は無効です。
私は何かが欠けていますか?いくつかの制限により、Simple date formater を使用するようにコードを変更できません。
どんなアイデアでも大歓迎です。ありがとう。