[解決済み] JAX-WSによるサーバーサイドのスキーマ検証
質問
JAX-WSのコンテナレス・サービス(
Endpoint.publish()
から
main()
メソッド) を使用します。入力されたメッセージを検証するサービスを作りたいのですが。以下のアノテーションを試してみました。
@SchemaValidation(handler=MyErrorHandler.class)
を作成し、適切なクラスを実装しました。サービスを起動すると、以下のようになります。
Exception in thread "main" javax.xml.ws.WebServiceException:
Annotation @com.sun.xml.internal.ws.developer.SchemaValidation(outbound=true,
inbound=true, handler=class mypackage.MyErrorHandler) is not recognizable,
atleast one constructor of class
com.sun.xml.internal.ws.developer.SchemaValidationFeature
should be marked with @FeatureConstructor
私が見つけたのは いくつかの解決策 インターネット上では、そのすべてがWebLogicコンテナの使用を暗示しています。私の場合、コンテナを使用することができないので、埋め込みサービスが必要です。それでもスキーマ検証を使用することはできますか?
どのように解決するのですか?
その
@SchemaValidation
アノテーションはJAX-WS仕様で定義されておらず、検証はオープンなままになっています。これは、jdk に含まれるクラスだけでなく、それ以上のものが必要であることを意味します。
クラスパスにjarを追加できるのであれば、metro(WebLogicにも含まれています)を使ってかなり簡単に設定できます。これが、WebLogicをコンテナとして使用するソリューションを見つける理由です)。より正確には、クラスパスに2つのjarを追加する必要があります。私は次のように提案します。
- ダウンロード 最新のメトロ・リリース .
- どこかで解凍してください。
-
を追加します。
jaxb-api.jar
とjaxws-api.jar
をクラスパスに追加します。これを行うには、たとえばこれらをJAVA_HOME/lib/endorsed
または手動でプロジェクトに追加してください。これは、あなたが使っている IDE や何かに大きく依存します。
これができたら、あなたの
MyErrorHandler
を介してデプロイされても動作するはずです。
Endpoint.publish()
. 少なくとも、私はこの設定をローカルで行い、コンパイルして動作しています。
クラスパスを変更することができず、検証が必要な場合は、JAXBを使用して手動でリクエストを検証する必要があります。
関連
-
[解決済み] 名前が''の無効なフォームコントロールはフォーカスされない
-
[解決済み] JAX-WSによるサーバーサイドのスキーマ検証
-
[解決済み] reactとmaterial-uiによるフォームバリデーション
-
[解決済み] IETFが定義するメールアドレスの実際の最小の長さはどのくらいですか?
-
[解決済み] 有効なメールアドレスの最大長を教えてください。
-
[解決済み] HTML5 form 要素の検証を無効にする
-
[解決済み] Angularフォームフィールドを手動で無効に設定するにはどうすればよいですか?
-
[解決済み】Hibernate Validator(JSR303)でクロスフィールド検証を行う。)
-
[解決済み】入力に誤りがあった場合のHTTPステータスコードについて
-
[解決済み] JavaScript: クライアントサイドとサーバーサイドの検証
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Wekaにおけるクロスバリデーション
-
[解決済み] JAX-WSによるサーバーサイドのスキーマ検証
-
[解決済み] reactとmaterial-uiによるフォームバリデーション
-
[解決済み] IETFが定義するメールアドレスの実際の最小の長さはどのくらいですか?
-
[解決済み] 有効なメールアドレスの最大長を教えてください。
-
[解決済み] HTML5 form 要素の検証を無効にする
-
[解決済み] REST APIサービスが検証に失敗した場合に返すべき適切なHTTPステータスコードは何ですか?
-
[解決済み] Angularフォームフィールドを手動で無効に設定するにはどうすればよいですか?
-
[解決済み】Javaのメールアドレス検証方法は何が一番良いですか?[クローズド]
-
[解決済み】入力に誤りがあった場合のHTTPステータスコードについて