問題タブ [jsr]
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 - OR条件で2つのフィールドを検証するには?
いずれかのフィールドが有効であるか、別のフィールドが有効であるという方法で、要求クラスの 2 つのフィールドを検証したいと考えています。
例: リクエスト Bean
コントローラーの方法
ここで、customerName が NotEmpty であるか、customerId が NotEmpty であるかを確認します。その後、私の検証に合格する必要があります。どうすれば実装できますか。提案してください!!
spring - Spring バッチ - ライターでスローされた例外をスキップすると、JSR 352 の再試行が失敗する
ライターで例外がスローされたときに何が起こるかを調査しようとしています。理論上、ロールバックが発生することを期待していたので、コミット サイズを 1 に設定してチャンクを再試行しますが、これは発生せず、次のエラーが表示されます。
Spring Batch -JSR 352 ジョブ デザインを使用しています。ライターでは、3 つの JDBC 呼び出しがあります。2 つの JDBC 呼び出しが正常に実行された後にスキップ可能な例外をスローすると、Spring バッチがチャンクのトランザクションをロールバックできず、コミット サイズを 1 に設定してチャンクを再試行できないことがわかります。次の execption を受け取った後、チャンク全体がスキップされ、チャンク コミットが行われています。その結果、2 つの JDBC テーブルに既に書き込まれているデータが永続化され、3 番目のテーブル データが失われます。
参照用に構成ファイルを添付しています。デバッグすることで、Spring によって管理されるトランザクションで挿入ステートメントが実行されていることがわかりました。トランザクション マネージャーの構成に問題はないと確信しています。
java - JSR 352 分割チャンク処理
JSR 352 モードの Spring Batch でチャンク ステップ (リーダー - プロセッサ - ライター) を実行しようとしています。MyItemReader
パーティショニングがすべてのパーティションに対してバッチ Artifacts ( ) の新しいインスタンスを作成するのか、それとも Artifacts がステートフルなのか (つまり、Artifact で定義されたグローバル変数が複数のスレッドで再利用され、スレッド セーフではないのか)を知りたいと思いました。
ありがとう
java - java.time.LocalDateTimeでjadira PersistentLocalDateTimeを設定するには?
java.time.LocalDateTime
Hibernate と JPA を使用して永続化しようとしています。Jadira フレームワーク ("org.jadira.usertype:usertype.core:3.2.0.GA" & "org.jadira.usertype:usertype.extended:3.2.0.GA") を使用しました。package-info.java
ファイルを作成し、@TypeDefs({@TypeDef(defaultForType = java.time.LocalDateTime.class, typeClass = org.jadira.usertype.dateandtime.threeten.PersistentLocalDateTime.class)})
そこに作成しました。ソリューションをテストしたところ、java.time.LocalDateTime
フィールドは MySQL データベースのDATETIME
列 (ほぼ) に正しく格納/取得されました。
唯一の問題は、データベースの値が Java のフィールドからの正しい時間値に対して +2 時間であることです。私はCEST(UTC + 2)にいるので、これはタイムゾーンの問題であることを理解しました. のコードをデバッグしたPersistentLocalDateTime
ところ、これが見つかりました。
PersistentLocalDateTime
使っているorg.jadira.usertype.dateandtime.threeten.columnmapper.AbstractTimestampThreeTenColumnMapper
AbstractTimestampThreeTenColumnMapper
フィールドZoneOffset databaseZone
はデフォルトでZoneOffset.of("Z")
(UTC) に設定されています。- 私のデータベースは UTC タイムゾーンである (そしてアプリケーションは UTC+2 である) と考えているため、データベースへの変換中に 2 時間が追加されます (データベースからの変換中に私の時間から 2 時間が減算されます)。したがって、アプリケーションでは正しい日付と時刻が表示されますが、データベースでは表示されません。
にパラメーターを追加できることがわかった@TypeDef
ので、以下のように指定しました。
しかし、私には例外があります:
もう少しデバッグしました。AbstractTimestampThreeTenColumnMapper
次の 2 つの方法があります。
getHibernateType
resolveCalendar
メソッドが を返すため、メソッドは例外をスローしますnull
。なぜそれが返されるのnull
ですか?とのタイムゾーン ID が一致しないためjava.time.ZoneOffset
ですjava.util.TimeZone
。私が見る限り、一致する唯一の可能な値はZ
. その他の値を指定すると、例外が発生します。
これを正しく設定する方法はありますか?それとも Jadira フレームワークのバグですか?
java - JSR 105 と HSM 秘密鍵を使用した Java 署名 XML ドキュメント
JSR 105 API を使用して XML ドキュメントに署名する必要があります。標準プロバイダーを使用してそれを行う方法はすでにわかっていますが、HSM をサポートするコードが必要です。で、これが問題。
次のように署名を初期化すると:
HSM (SunPKCS11 プロバイダー) から取得した秘密鍵を使用すると、次の例外/エラーが発生します。
SunPkcs11 プロバイダで署名ファクトリを初期化すると、次のようになります。
私はこの例外を受けています:
少しグーグルで検索したところ、XML 署名で使用されるプロバイダーには JSR 105 拡張子が必要であることがわかりましたが、SunPkcs11 には拡張子がないようです。それがあれば、それはうまくいくでしょう。
オープンソースまたはJava / Oracleが提供するコードを使用してこの状況を解決する方法を知っている人はいますか?
ありがとう、ジョセフ
java - jvm クラスのリロード提案、現在それを目指している JSR はありますか?
クラスのリロードは、生産性を大幅に向上させると思います。クラスの再定義は非常に限られていると思います。
何年にもわたって、アプリケーションの一部をある種のドメイン固有言語 (DSL) で、または XML や json やプロパティ ファイルなどのより自由な形式で絶えず変更し続けるためのいくつかの回避策を見つけましたfunction (){}
。可能であり、以前の関数定義を上書きすることは簡単に可能です。
私の考え:
クラスをリロード可能にするため、またはクラスをスクリプトとして機能させるために、注釈を付けることができます。つまり、.java ファイルを DSL として扱うことができます。
現在、リロード可能なクラスの参照が他の場所で役立ち、クラスをアンロードしようとしているときにメモリ リークが発生する可能性があるという懸念があります。
これを克服するには、いくつかの制約を適用する必要があります。この部分は難しいですが、インターフェイス コントラクトまたは注釈を使用できます。必要に応じて、OSGi 記述子によく似ているが、インターセプターまたはインターフェースを使用するクラス内で、エクスポートと依存関係に課されるコントラクトが存在する可能性があります。OSGi は、クラスごとに必要とされないバージョンの依存関係のマッチングなどを処理するため、OSGi よりも単純である必要があります。
この機能は非常に便利だと思います。副産物として、java を構成ファイルとして、java を DSL として使用できますが、プログラムのほとんどの部分はコンパイルされたモノリスのままで十分にパフォーマンスを発揮できます。
JavaScript プログラムは常に、構成記述子として javascript または json を使用します。これもまた、javascript オブジェクト表記です。Java または任意の jvm 言語で同じことができるはずです。
Javaモジュールシステムはこれに焦点を当てていますか?
注: これは質問形式ではなく、むしろ提案だと思います。その意味で、間違った QA サイトにあります。どこに引っ越せばいいのかわからないので、ここで声を出して考えています。移動先を提案します。